php安全

一、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等。即使有上传漏洞,那么文件也被传到了静态服务器上,木马等文件根本无法执行

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值