博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
web服务器的php安全设置
阅读量:6343 次
发布时间:2019-06-22

本文共 986 字,大约阅读时间需要 3 分钟。

hot3.png

文中的情形是利用PHP的漏洞远程执行代码下载文件写入服务器并执行.

而正常情况下运行PHP的用户(一般就是Web服务器运行用户)对 Web目录是没有写权限的(除了缓存目录),而为了安全一般都用disable_functions在php.ini里禁用了PHP执行Shell的函数 (也就无法通过运行PHP WebShell回弹Shell执行Shell命令),另外open_basedir也会限制PHP的文件操作目录,明确隔离了Web目录和系统目录.
就算是缓存目录,一般也会配置为不解析PHP,所以即使上传PHP WebShell到缓存目录也无法执行.
如果你非要chmod -R 777 /var/www/html和允许PHP调用Shell命令,那只能说是自己的问题了.
安全的Web目录权限设置:
find -type d -exec chmod 755 {} \;
find -type f -exec chmod 644 {} \;
注意:Web目录用户不能是Web服务器运行用户,一般通过yum/apt-get安装服务的情况下是这样的.
编译安装LAMP服务的注意要自己新建用户并指定用户运行Apache或者Nginx.
在php.ini里禁用执行Shell的函数和限制PHP文件操作目录:
disable_functions = passthru,exec,system,shell_exec,chroot,chgrp,chown,proc_open,proc_get_status,ini_alter,ini_restore,ini_set,dl,pfsockopen,symlink,popen,putenv
open_basedir=/var/www/html/:/tmp/
更多"安全禁用函数"参考:
http://help.aliyun.com/manual?helpId=87
因 为默认情况下PHP的会话文件存放在/tmp下,上传的文件也会临时存放在/tmp下,所以需要open_basedir里设置了/tmp目录,不过无论 是会话文件存放目录还是临时上传目录,都可以在php.ini里自定义,也可以为每个虚拟主机进行自定义,隔离虚拟主机间的文件操作.

转载于:https://my.oschina.net/u/820238/blog/185944

你可能感兴趣的文章
使用 canvas 绘制图片,然后下载、上传
查看>>
Error:Conflict with dependency 'com.android.support:support-annotations' in proj
查看>>
双喜临门,压力测试、曼谷会议,BCH成绩斐然
查看>>
Python基础(11) Python按照索引访问list
查看>>
小猿圈Python教程之全面解析@property的使用
查看>>
IOS 11 通讯录手机号「隐形字符」Bug的处理
查看>>
「Lamport Paxos」学习Paxos分布式一致性协议必读的两篇论文译文
查看>>
mpvue开发小程序所遇问题及h5转化方案
查看>>
Spring Cloud Spring Boot mybatis分布式微服务云架构-hystrix参数详解
查看>>
真正的未来科技——人工智能
查看>>
View和Activity的生命周期
查看>>
解决PHP下载大文件失败,并限制下载速度
查看>>
从 MVC 到前后端分离
查看>>
(四)整合spring cloud云服务架构 - 企业分布式微服务云架构构建
查看>>
java B2B2C Springcloud电子商城系统—Feign实例
查看>>
java B2B2C Springcloud多租户电子商城系统 (五)springboot整合 beatlsql
查看>>
掌握 analyze API,搞定分词难题
查看>>
go 单元测试
查看>>
我的友情链接
查看>>
为什么很多公司的大数据相关业务都基于 Hadoop 方案?
查看>>