你需要了解的10个关于php.ini的安全配置选项
1,allow_url_fopen:选项允许你如同本地文件一样引用远程资源.推荐关闭allow_url_fopen选项.
2,disable_functions:选项是非常有用的,它可以确保一些有潜在威胁的函数不能被使用。尽管可以建
立规范去禁止使用这些函数,但在PHP配置中进行限制要比依赖于开发时限制要可靠得多。
3,display_errors:PHP的错误报告可以帮助你发现你所写代码中的错误,把错误提示显示出来是取得即时
反馈的有效方法,同时也可以加快开发速度,开发测试完后建议你关闭display_errors选项。
4,enable_dl:选项用于控制dl()函数是否生效,该函数允许在运行时加载PHP扩展.用dl()函数可能导致
攻击者绕过open_basedir限制,因此除非有必要,建议禁用.
5,error_reporting:很多安全漏洞是由于使用了未初始化的变量或其它随意的编程方法引起的.
通过把PHP的error_reporting选项置为E_ALL 或 E_ALL | E_STRICT,PHP就会对上述行为进行提示。这
些设置都为报告Notice级别的错误。建议把error_reporting至少设定为E_ALL.
6,file_uploads:选项决定了是否允许上传文件.如果你的应用不需要用户上传文件,那么关闭该选项就
是最好的选择.
7,log_errors:当log_errors设为有效时,PHP会向error_log配置选项指定的文件中写入所有出错信息.
当display_errors设为无效时,将log_errors设为有效是很重要的;否则你将无法看到出错信息.
建议将log_errors设为有效并在error_log设定日志文件所在位置.
8,magic_quotes_gpc:magic_quotes_gpc是一个常用的选项,它目的是防止SQL注入.对$_GET, $_POST,
以及 $_COOKIE中的数据使用同样的规则即addslashes( )函数进行处理.从而它并没有根据你的数据库选
用对应的转义函数进行处理。建议禁用.
9,memory_limit:为防止死循环占用所有的可用内存,可以使用memory_limit选项对最大内存使用量进行
限制.建议在大多情况下使用默认值8M.memory_limit选项只有在PHP指定了enable-memory-limit方式编
译时才会生效.
10,open_basedir:选项会限制PHP只能在它指定的目录中打开文件。尽管它不能取代正确的输入过滤,但
该选项能减少利用文件系统相关函数如include及require进行的攻击。
该选项的值会被当做前缀使用,因此当你想表示指定目录时请小心不要漏了最后的斜杠:
open_basedir = /path/to/
请确认enable_dl选项是关闭的,否则open_basedir的限制可能会被绕过.
register_globals使用请看早前发布的
php中register_globals使用详解
学习了一下,不错!