常用PHP安全设置加固
By admin
- One minute read - 77 words1.隐藏php版本 2.禁用危险的php函数 3.命令注入攻击 4.SQL注入攻击 5.xss攻击 6.会话劫持攻击 7.关闭注册全局变量 8.上传文件 9.远程包含、本地包含 10.Php.ini包含补丁文件,我们可以根据需要,通过它包含或者nginx的模块
1.隐藏php版本
expose_php=off
2.禁用危险的php函数 popen,pentl_exec,passthru,exec,system,scandir,chgrp,chown,shell_exec,proc_open,proc_get_status,ini_alter,ini_alter,ini_restore,dl,pfsockopen,openlog,syslog,readlink,symlink,popepassthru,stream_socket_server,show_source,escapeshellcmd,escapeshellarg,curl_exec,curl_multi_exec,parse_ini_file,assert 至于eval函数,我们用suhosin把这些全部都加进eval的黑名单
3.命令注入攻击 还是函数使用不严格造成的,这个我们应该不会有这些问题,因为如果存在,我们也禁用过,程序自然会报错
4.SQL注入攻击 magic_quotes_gpc = On;还有就是程序上的事情
5.xss攻击 举例说明,以前的公司还有新网都有后台客户提交工单给技术人员,然而提交位置存在xss跨站漏洞,如果在其位置跨个木马、偷取cookies、密码进行csrf攻击,后果不堪设想。 有必要的情况下增加xss模块
6.会话劫持攻击 这个说起来容易,对于session,需要条件及其苛刻,没有足够条件也是无法成功的!!
7.关闭注册全局变量 在PHP中提交的变量,包括使用POST或者GET提交的变量,都将自动注册为全局变量,能够直接访问,这是对服务器非常不安全的,所以我们不能让它注册为全局变量,就把注册全局变量选项关闭:register_globals = Off 当然,如果这样设置了,那么获取对应变量的时候就要采用合理方式,比如获取GET提交的变量var,那么就要用$_GET[‘var’]来进行获取,这个php程序员要注意。
8.上传文件 这里文件在另外个服务器没什么要说的,注意服务器上传目录无执行权限
9.远程包含、本地包含 常见攻击方法: 远程包含不用说了,直接包含远程的恶意代码获取控制权 防范:在php.ini关闭allow_url_fopen = off 本地包含常见攻击方法有三种, 1.日志包含。 2./proc/environ包含客户端user-agent。 3.图片包含。以上三种方法都是先向其内容插入恶意代码,使其包含执行 防范:open_basedir限制了目录,防止了1,2的攻击方法。至于第三种我们的图片在调用服务器,本地包含是无效的^_^。
10.Php.ini包含补丁文件,我们可以根据需要,通过它包含或者nginx的模块 在php.ini中引用。在配置文件内引用的话,将影响到所以的网站,包含所有页面 在php.ini中,找到此节:
; Automatically add files before or after any PHP document. ;auto_prepend_file = “phpids.php” ;auto_append_file = “alert.php”
默认是空,请添加所包含的文件。同时找到:
; UNIX: “/path1:/path2″ ;include_path = “.:/php/includes” ; ; Windows: “\path1;\path2″ include_path = “.;F:\PHPnow\htdocs”