php安全

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/oHeiZhiShi123/article/details/100007205

一、php.ini配置

1、
disable_functions = passthru,exec,system,chroot,chgrp,chown,shell_exec,proc_open,proc_get_status,
ini_alter,ini_restore,dl,openlog,syslog,readlink,symlink,popepassthru,
stream_socket_server,fsocket,phpinfo #禁用的函数
2、
expose_php = off            #避免暴露PHP信息
3、
display_errors = off        #关闭错误信息提示
4、
register_globals = off      #关闭全局变量
5、
enable_dl = off             #禁止动态加载链接库
6、
allow_url_include = off     #避免远程调用文件
7、
allow_url_fopen = Off       #禁用打开远程url

以下方法将无法获取远程url内容
$data = file_get_contents("http://www.baidu.com/");
以下方法可以获取本地文件内容
$data = file_get_contents("1.txt");
8、
session.cookie_httponly = 1 #http only开启,防止xss攻击,禁止客户端获取cookie信息
9、
upload_tmp_dir = /tmp       #明确定义upload目录
【window】
upload_tmp_dir = C:\windows\temp
10、
[HOST=www.baidu.com]
open_basedir=/home/wwwroot/www.baidu.com/:/proc/:/tmp/   #限制用户访问的目录
[PATH=/home/wwwroot/www.iamle.com/]
open_basedir=/home/wwwroot/www.baidu.com/:/proc/:/tmp/
【window】
open_basedir = "D:/phpStudy/PHPTutorial/tmp/tmp/;E:/WWW/;C:/WINDOWS/Temp/;"

HOST和PATH 任选一个就行
注意:目录最后一定要加上/. 比如你写/tmp,你的站点同时存在/tmp123等等以/tmp开头的目
录,那么黑客也可以访问到这些目录,另外, php5.3以上支持这个写法,5.2不支持。

关于open_basedir的其他地方
#在php-fpm.conf对应的pool池中行尾配置
php_admin_value[open_basedir]=/home/wwwroot/:/proc/:/tmp/
 
#在nginx fastcgi fastcgi_param配置
#这里用$document_root是一种取巧的方法,也可以设置绝对路径
# set php open_basedir
fastcgi_param PHP_ADMIN_VALUE "open_basedir=$document_root/:/tmp/:/proc/";

二、php用户只读

目录权限为755,文件权限为644,上传目录777

三、上传分离

将文件上传到远程服务器,例如nfs等。即使有上传漏洞,那么文件也被传到了静态服务器上,木马等文件根本无法执行

文章创建于: 2019-08-22 09:00:41
展开阅读全文

没有更多推荐了,返回首页