社区
基础编程
帖子详情
为什么我的PHP在程序出错后没有任何提示,IE浏览器上就一片空白。
hlddn
2003-08-29 10:13:00
我在本地上用的是PHP+IIS,代码中要是有错误就运行的话,IE就一片空白,任何错误提示都没有。我把代码放到远端服务器上就可以显示错误代码。为什么?
...全文
245
5
打赏
收藏
为什么我的PHP在程序出错后没有任何提示,IE浏览器上就一片空白。
我在本地上用的是PHP+IIS,代码中要是有错误就运行的话,IE就一片空白,任何错误提示都没有。我把代码放到远端服务器上就可以显示错误代码。为什么?
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
5 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
hlddn
2003-08-30
打赏
举报
回复
改了,还是不行啊。
feel8
2003-08-30
打赏
举报
回复
[全局变量]
PHP中的变量不需要事先声明,它们会在第一次使用时自动创建,它们的类型也不需要指定,它们会根据上下文环境自动确定。从程序员的角度来看,这无疑是一种极其方便的处理方法。很显然,这也是快速开发语言的一个很有用的特点。一旦一个变量被创建了,就可以在程序中的任何地方使用。这个特点导致的结果就是程序员很少初始化变量,毕竟,当它们第一次创建时,他们是空的。
很显然,基于PHP的应用程序的主函数一般都是接受用户的输入(主要是表单变量,上载文件和Cookie等),然后对输入数据进行处理,然后把结果返回到客户端浏览器。为了使PHP代码访问用户的输入尽可能容易,实际上PHP是把这些输入数据看作全局变量来处理的。
例如:
<FORM METHOD="GET" ACTION="test.php">
<INPUT TYPE="TEXT" NAME="hello">
<INPUT TYPE="SUBMIT">
</FORM>
很显然,这会显示一个文本框和提交按钮。当用户点击提交按钮时,“test.php”会处理用户的输入,当“test.php”运行时,“$hello”会包含用户在文本框输入的数据。从这里我们应该看出,攻击者可以按照自己的意愿创建任意的全局变量。如果攻击者不是通过表单输入来调用“test.php”,而是直接在浏览器地址栏输入http://server/test.php?hello=hi&setup=no,那么,不止是“$hello”被创建,“$setup”也被创建了。
译者注:这两种方法也就是我们通常说的“POST”和“GET”方法。
下面的用户认证代码暴露了PHP的全局变量所导致的安全问题:
<?php
if ($pass == "hello")
$auth = 1;
...
if ($auth == 1)
echo "some important information";
?>
上面的代码首先检查用户的密码是否为“hello”,如果匹配的话,设置“$auth”为“1”,即通过认证。之后如果“$suth”为“1”的话,就会显示一些重要信息。
表面看起来是正确的,而且我们中有相当一部分人是这样做的,但是这段代码犯了想当然的错误,它假定“$auth”在没有设置值的时候是空的,却没有想到攻击者可以创建任何全局变量并赋值,通过类似“http://server/test.php?auth=1”的方法,我们完全可以欺骗这段代码,使它相信我们是已经认证过的。
因此,为了提高PHP程序的安全性,我们不能相信任何没有明确定义的变量。如果程序中的变量很多的话,这可是一项非常艰巨的任务。
一种常用的保护方式就是检查数组HTTP_GET[]或POST_VARS[]中的变量,这依赖于我们的提交方式(GET或POST)。当PHP配置为打开“track_vars”选项的话(这是缺省值),用户提交的变量就可以在全局变量和上面提到的数组中获得。
但是值得说明的是,PHP有四个不同的数组变量用来处理用户的输入。HTTP_GET_VARS数组用来处理GET方式提交的变量,HTTP_POST_VARS数组用于处理POST方式提交的变量,HTTP_COOKIE_VARS数组用于处理作为cookie头提交的变量,而对于HTTP_POST_FILES数组(比较新的PHP才提供),则完全是用户用来提交变量的一种可选方式。用户的一个请求可以很容易的把变量存在这四个数组中,因此一个安全的PHP程序应该检查这四个数组。
half_human
2003-08-30
打赏
举报
回复
哦,原来是这样的,怎么PHP现在把什么设置都从原来的ON改成OFF了!
不提醒一声还真不行
feel8
2003-08-30
打赏
举报
回复
display_errors = On ,重启web server后再试。
feel8
2003-08-29
打赏
举报
回复
看看php.ini中的display_errors 值是否为off
如果是的话,把他改为display_errors = On
html文件图标显示空白,关于.html、.htm等一些网页文件图标出现空白或无法关联的解决方法...
打开文件夹,发现里面的HTM、HTML图标不知什么时候被改掉了,变成了一个windows的未知图标,而且.
php
文件也显示成了.txt的文本文件图标,那个纳闷啊,我还以为是没选择默认的打开
程序
呢,于是选择了IE为默认打开.html...
IE常见问题集
希望这篇文章能够对IE用户有所帮助,其内容都是根据本人的使用经验和在新闻组中遇到的用户所反馈的问题分析整理而成(部分内容整理自微软Windows创新日课件),所以难免有疏漏之处,欢迎各位加以补充。 一 般来说...
AJAX 开发攻略
是的,你的
浏览器
在等待刷新,而你的屏幕内容是
一片空白
,而你在屏幕前苦苦的等待
浏览器
的响应。开发人员为了克服这种尴尬的局面,不得不在每一个可能需要长时间等待响应的页面上增加一个DIV,告诉用户“系统正在...
AJAX开发简略
是的,你的
浏览器
在等待刷新,而你的屏幕内容是
一片空白
,而你在屏幕前苦苦的等待
浏览器
的响应。开发人员为了克服这种尴尬的局面,不得不在每一个可能需要长时间等待响应的页面上增加一个DIV,告诉用户“系统正在
AJAX开发简略http://dev2dev.bea.com.cn/bbsdoc/20051114124.html
是的,你的
浏览器
在等待刷新,而你的屏幕内容是
一片空白
,而你在屏幕前苦苦的等待
浏览器
的响应。开发人员为了克服这种尴尬的局面,不得不在每一个可能需要长时间等待响应的页面上增加一个DIV,告诉用户“系统正在...
基础编程
21,887
社区成员
140,363
社区内容
发帖
与我相关
我的任务
基础编程
从PHP安装配置,PHP入门,PHP基础到PHP应用
复制链接
扫一扫
分享
社区描述
从PHP安装配置,PHP入门,PHP基础到PHP应用
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章