微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

提升PHP安全:8个必须修改的PHP默认配置

很明显,PHP+MysqL+Apache是很流行的web技术,这个组合功能强大,可扩展性强,还是免费的。然而,PHP认设置对已经上线的网站不是那么适合。下面通过修改认的配置文件加强PHP的安全策略!

0x01:禁用远程url文件处理功能

像fopen的文件处理函数,接受文件的rul参数(例如:fopen('http://www.yoursite.com','r')).),这个功能可以很轻松的访问远程资源,然而,这是一个很重要的安全威胁,禁用这个功能来限制file function是个不错的选择,在PHP.ini文件中做如下修改

代码如下:

0x02:禁用注册全局变量

PHP在4.2.0以前的版本中,用全局变量作为输入,这个功能叫做register_globals,在web应用中它引起了很多安全问题,因为它允许攻击者在一些情况下很容易的操作全局变量,幸运的是在4.2.0这个功能认被禁用,它非常的危险,无论在什么情况下都要禁用这个功能。如果某些脚本需要这个功能,那么这个脚本就存在潜在的安全威胁。修改pnp.ini来禁用这个功能

代码如下:

0x03:限制PHP的读写操作

在很多web开发的过程中,PHP脚本需要向本地文件系统进行读写操作,比如/var/www/htdocs/files,为了加强安全,你可以修改本地文件的读写权限:

代码如下:

0x04:Posing Limit

限制PHP的执行时间、内存使用量、post和upload的数据是最好的策略,可以做如下的配置:

代码如下:

0x05:禁用错误消息和启用日志功能

认设置中,PHP会向浏览器输出错误消息,在应用程序的开发过程中,这个认设置是最合理的配置,然而,它也可以向用户泄漏一些安全信息,例如安装路径用户名。在已经开发完成的网站中,最好禁用错误消息然后把错误消息输出到日志文件中。

代码如下:
display_errors = Off log_errors = On

0x06:隐藏PHP文件

如果没有隐藏PHP文件,我们可以通过多种方法获取服务器PHP的版本,例如使用:

显然,我们不希望用户可以直接获取你网站服务器的PHP版本,幸运的是,在php.ini中有个开关可以禁用这个功能:

代码如下:
PHP = Off

0x07:安全模式配置

认的情况下,PHP可以配置为安全模式,在这种模式下,Apache禁止访问文件、环境变量和二进制程序,在安全模式下,存在的最大问题就是只有文件的所有者才能访问这写PHP文件,如果有很多开发者共同开发这个程序,这样的设置就不切实际,当你需要访问一个PHP文件时就需要修改这个文件的所有者,另外一个问题就是其它程序也不能访问这些PHP文件,下面的配置就可以修改文件的的权限为用户组而不是单个用户

代码如下:

通过启用safe_mode_gid,能够使用Apache的这个群组就能够访问PHP文件。安全模式对阻止二进制文件的执行也非常有效,然而,开发者却希望在某些特定情形下能够运行一些二进制文件在这些特殊的情形下,可以将二进制文件放进一个目录中,比如(/var/www/binaries),可以做如下设置:

代码如下:

最后,通过下面的设置,可以访问服务器的环境变量,提供一个以”_“分割的前缀,这样只能访问具有规定前缀的环境变量:

代码如下:
PHP_

0x08:限制公共用户对具有特定后缀名的文件的访问

由于安全的原因,很多具有特定后缀名的文件不能被公共用户所访问,比如.inc后缀的文件,里面包含了一些敏感的信息,比如MysqL连接信息,如果没有适当的配置,那么每个用户都能访问这个配置文件,为了加强网站的安全,你需要在. .htaccess文件进行如下的配置:

代码如下:
Order allow,deny Deny from all

0x09:总结

PHP认配置是面向开发者的,如果网站面向广大的用户,建议重新配置PHP

原文地址:https://www.jb51.cc/js/57295.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐