PHP 安全设置

  1. open_basedir = website_root_path ,将 PHP 所能打开的文件限制在指定的目录,php文档

  2. allow_url_fopen = off 禁用引入远程文件 php文档

  3. disable_functions = fun1,fun2 禁用危险系统函数 php文档

  4. expose_php = Off 隐藏 php 版本号 php文档

  5. cgi.fix_pathinfo = 0 防止上传恶意脚本,详情请查看鸟哥博客 地址

  6. display_errors = Off 隐藏错误信息

  7. log_errors = On 开启错误日志

微信订阅号:Nick同学
《L04 微信小程序从零到发布》
从小程序个人账户申请开始,带你一步步进行开发一个微信小程序,直到提交微信控制台上线发布。
《L03 构架 API 服务器》
你将学到如 RESTFul 设计风格、PostMan 的使用、OAuth 流程,JWT 概念及使用 和 API 开发相关的进阶知识。
讨论数量: 6

allow_url_fopen = off这个一般不会关闭吧,否则file_get_contents('php://input')没法用了

6年前 评论

@mingyun 是的,fopen() 这类函数也无法使用,这些配置不是强制的,假如你的服务器是 Apache ,那么 cgi.fix_pathinfo = 0 也不需要设置的!

6年前 评论

allow_url_fopen倒不是很重要,但是allow_url_include如果非必须一定记得关闭

6年前 评论

@mingyun

开启了allow_url_include后,可以使用封装协议,最常用的两个php://inputphp://filter

我用来测试的都在allow_url_fopenOffallow_url_includeOn的情况下进行的

file

测试的代码

<?php
echo include($_GET['f']);
?>

第一个案例 php://input 可使用的情况下会造成的任意代码执行

file

第二个案例php://filter 可使用的情况可能会造成的任意文件读取

file

base64编码的内容就是index.php的内容

6年前 评论

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!