论坛风格切换
  • 2889阅读
  • 5回复

[反馈]PHP防止错误信息显示暴露,影响安全问题 [复制链接]

上一主题 下一主题
离线cixinet
 

发帖
66
金币
8
威望
9
只看楼主 倒序阅读 使用道具 楼主  发表于: 2012-03-26
PHP遇到错误时,就会给出出错脚本的位置、行数和原因,例如:
Notice: Use of undefined constant test - assumed ''test'' in D:interpubbigflytest.php on line 3
有很多人说,这并没有什么大不了。但泄露了实际路径的后果是不堪设想的,对于某些入侵者,这个信息可是非常重要,而事实上现在有很多的服务器都存在这个问题。
有些网管干脆把PHP配置文件中的display_errors设置为Off来解决,但本人认为这个方法过于消极。有些时候,我们的确需要PHP返回错误的信息以便调试,而且在出错时也可能需要给用户一个交待,甚至导航到另一页面。
PHP从4.1.0开始提供了自定义错误处理句柄的功能函数set_error_handler(),但很少数脚本编写者知道。在众多的PHP论坛中,我只看见很少一部分对此情况进行了处理。set_error_handler的使用方法如下:
string set_error_handler ( callback error_handler [, int error_types])
http://www.w3school.com.cn/php/func_error_set_error_handler.asp

官方是否添加这个功能,让管理员状态下可以显示错误的信息,而普通网民无法看到这些信息,只显示类似“处理 URL 时服务器出错”字样
本帖提到的人: @太史慈
离线太史慈

发帖
766
金币
626
威望
556
只看该作者 沙发  发表于: 2012-03-31
这个东西自己修改吧,跟global.php里面
error_reporting(E_ERROR | E_PARSE);
有关系的。
[url=http://www.phpwind.com]phpwind[/url]
离线cixinet

发帖
66
金币
8
威望
9
只看该作者 板凳  发表于: 2012-04-01
回 云天河 的帖子
云天河:这个东西自己修改吧,跟global.php里面
error_reporting(E_ERROR | E_PARSE);
有关系的。 (2012-03-31 17:15) 

我单独文件调试正常后,然后把那段代码加到global.php后,发现页面上全是错误了,不知道怎么改
因为经常要对程序进行修改,所以不想把display_errors设置为off,又不想暴露错误信息
离线cixinet

发帖
66
金币
8
威望
9
只看该作者 地板  发表于: 2012-04-10
如何修改啊
本帖提到的人: @太史慈 @rickyleo @prisk
离线rickyleo

发帖
315
金币
0
威望
99
只看该作者 4楼 发表于: 2012-04-10
后台 全局设置里边关闭debug模式就好了
离线cixinet

发帖
66
金币
8
威望
9
只看该作者 5楼 发表于: 2012-04-11
回 rickyleo 的帖子
rickyleo:后台 全局设置里边关闭debug模式就好了 (2012-04-10 16:20) 

DEBUG 模式运行站点一直是关闭着的,但有些信息还是会暴露路径
快速回复
限100 字节
如果您提交过一次失败了,可以用”恢复数据”来恢复帖子内容
 
提到某人:
选择好友
上一个 下一个