推荐的php安全配置选项

推荐安全配置选项

这里有几个会影响安全功能的 PHP 配置设置。下面是一些显然应该用于生产服务器的:

register_globals 设置为 off
safe_mode 设置为 off
error_reporting 设置为 off。如果出现错误了,这会向用户浏览器发送可见的错误报告信息。对于生产服务器,使用错误日志代替。开发服务器如果在防火墙后面就可以启用错误日志。(LCTT 译注:此处据原文逻辑和常识,应该是“开发服务器如果在防火墙后面就可以启用错误报告,即 on。”)
停用这些函数:system()、exec()、passthru()、shell_exec()、proc_open()、和 popen()。
open_basedir 为 /tmp(以便保存会话信息)目录和 web 根目录,以便脚本不能访问这些选定区域外的文件。
expose_php 设置为 off。该功能会向 Apache 头添加包含版本号的 PHP 签名。
allow_url_fopen 设置为 off。如果你能够注意你代码中访问文件的方式-也就是你验证所有输入参数,这并不严格需要。
allow_url_include 设置为 off。对于任何人来说,实在没有明智的理由会想要访问通过 HTTP 包含的文件。
一般来说,如果你发现想要使用这些功能的代码,你就不应该相信它。尤其要小心会使用类似 system() 函数的代码-它几乎肯定有缺陷。

启用了这些设置后,让我们来看看一些特定的攻击以及能帮助你保护你服务器的方法。

时间: 2024-11-08 16:57:34

推荐的php安全配置选项的相关文章

第三章 Hyper-V 2012 R2配置选项

原书中的第二章 是介绍了下hyper-v的管理器和检查点的使用,导入导出虚拟机,所以我跳过了不高兴写,很简单.直接进入第三部分,介绍虚拟机的三个重要组成部分:CPU,内存,硬盘的配置选项. Hyper-v虚拟处理器 在Hyper-v中,系统对于虚拟处理器的管理偏向"粗犷",和同类产品VMware的ESXI相比,Hyper-v并不是将CPU的主频叠加,然后根据每一台虚拟机分配相应主频的资源:Hyper-v仅以物理CPU核心数进行资源分配,这种方式降低了逻辑架构的理解难度,但并不是说此种处

salt-master&minion常用配置选项

master常用配置选项: 1 interface: 指定bind的地址(默认0.0.0.0) 2 publish_port:指定发布端口(默认4505) 3 ret_port: 指定结果返回端口,与minion配置文件的master——port对应(默认为root) 4 user: 指定master进程的运行用户,如果调整,则需要调整部分目录的权限(默认root) 5 timeout: 指定timeout时间,如果minion规模庞大或网络状况不好,建议增大该值(默认5s) 6 keep_jo

SQL Server安装完成后3个需要立即修改的配置选项(转载)

你用安装向导安装了全新的SQL Server,最后你点击了完成按钮.哇噢~~~现在我们可以把我们的服务器进入生产了!抱歉,那并不是真的,因为你的全新SQL Server默认配置是错误的. 是的,你没看错:SQL Server的默认安装在很多方面的配置是错误的.在今天的文章里,我想给你展示下,为了更快的性能,在SQL Server安装完成后3个你需要立即修改的配置选项.我们开始吧! 最大服务器内存(Max Server Memory) 免责声明:如果这些天你在32位系统上运行你的SQL Serve

Qt5.7.0配置选项(configure非常详细的参数)

configure是一个命令行工具,用于配置Qt编译到指定平台.configure必须运行于Qt源码根目录.当运行configure时,编译源码使用的是所选工具链中的make工具. 一.源码目录.编译目录和安装目录 源码目录就是包含源码的目录.编译目录是包含Makefiles文件.object文件和其他中间文件的目录.安装目录是二进制文件和库文件安装的目录. 当编译目录和源码目录不一样时,称为影子编译(shadow build),比如说,Qt Creator默认是使用影子编译来编译工程的.这里也

[linux内核]linux各个内核配置选项的含义以及配置

1,linux各个内核配置选项的含义 linux各个内核配置选项含义 2,make menuconfig命令的使用 Y表示加载,N表示不加载,M表示的是作为模块的方式载入内核. 3,以模块方式载入的时候如何动态加载 如何动态加载模块

spark 相关配置 shuffle 相关配置选项

在master的/conf/spark-defaults.conf中配置 spark.shuffle.service.enabled true spark.shuffle.service.port 7337 但是在从节点的spark-defaults.conf中注释上面两个配置选项,不然web 界面中将看不到从节点 spark-defaults.conf: spark.local.dir /mnt/diskb/sparklocal,/mnt/diskc/sparklocal,/mnt/diskd

SQL 禁止在 .NET Framework 中执行用户代码。启用 "clr enabled" 配置选项

注:本文摘自:http://blog.csdn.net/heshengfen123/article/details/3597125 在执行SQL脚本过程中如果出现 禁止在 .NET Framework 中执行用户代码.启用 "clr enabled" 配置选项的解决办法是: 执行以下脚本: exec sp_configure 'show advanced options', '1';goreconfigure;goexec sp_configure 'clr enabled', '1'

thinkphp3.2链接数据库常用的配置选项

thinkphp3.2常用配置选项,app/Common/Conf/config.php 或者 app/Home/Conf/config.php 1 2 3 4 5 6 7 8 'SHOW_PAGE_TRACE' => true;         //开启右下角的调试信息小图标,调试时使用 'DB_TYPE'               =>  'mysql',        // 数据库类型 'DB_HOST'               =>  'localhost',    // 

SQL Serve里你总要去改变的3个配置选项

你用安装向导安装了全新的SQL Server,最后你点击了完成按钮.哇噢~~~现在我们可以把我们的服务器进入生产了!抱歉,那并不是真的,因为你的全新SQL Server默认配置是错误的. 是的,你没看错:SQL Server的默认安装在很多方面的配置是错误的.在今天的文章里,我想给你展示下,为了更快的性能,在SQL Server安装完成后3个你需要立即修改的配置选项.我们开始吧! 最大服务器内存(Max Server Memory) 免责声明:如果这些天你在32位系统上运行你的SQL Serve