参考答案
1、打开php的安全模式
php的安全模式是个非常重要的php内嵌的安全机制,能够控制一些php中的函数执行,比如system(),同时把被很多文件操作的函数进行了权限控制。 默认关闭,338行 safe_mode = Off 改为 safe_mode = On
2、用户组安全
; By default, Safe Mode does a UID compare check when ; opening files. If you want to relax this to a GID compare, ; then turn on safe_mode_gid. ; http://php.net/safe-mode-gid safe_mode_gid = Off # php5.3.27默认关闭
3、关闭危险函数
当打开安全模式,函数禁止可以不做,但为了双重保险还是做。比如不执行system()能执行系统命令的函数,或能查看php信息的phpinfo()等函数。方法如下 disable_functions = system,passthru,exec,shell_exec,popen,phpinfo
4、关闭php版本号
php版本号会在http的head里显示 expose_php = On 改为 expose_php = Off
5、关闭注册全局变量
register_globals = Off # 默认关闭,不要打开
6、打开magic_quotes_gpc防止SQL注入
magic_quotes_gpc = Off 改为 magic_quotes_gpc = On
7、错误信息控制
一般php在没有连接到数据库或者其他情况下会有错误提示,一般错误信息中会包含php脚本当前的路径信息或者查询的SQL语句等信息,这类信息在生产环境是不允许的,应禁止。想要错误信息,应该导入日志。 display_errors = Off (默认值,不是改为off) 显示错误级别 error_reporting = E_WARNING & E_ERROR
8、错误日志
log_errors = On log_errors_max_len = 1024 # Set maximum length of log_errors. error_log = /app/logs/php_errors.log # 注意写权限
9、资源参数限制优化
# 设置每个脚本运行的最长时间,当无法上传较大的文件或者后台备份数据经常超时,需调整下面参数,单位秒。 max_execution_time = 30 # 每个脚本使用的最大内存 memory_limit = 128M # 每个脚本等待输入数据最长时间 max_input_time = 60 # 上传文件的最大许可 upload_max_filesize = 2M
10、安全参数优化
# 禁止打开远程地址 allow_url_fopen = On 改为 allow_url_fopen = Off # 防止Nginx文件类型错误解析漏洞 cgi.fix_pathinfo=0
备注
今天是每日一题陪伴大家的第108天,期待你的进步。
对于题目和答案的任何疑问,请在博客评论区留言。
往期题目索引
http://lidao.blog.51cto.com/3388056/1914205
本文转自 李导 51CTO博客,原文链接:http://blog.51cto.com/lidao/1953307