如何利用 PHP 的安全模式功能来增强您网站的安全性 - 汇站网

如何利用 PHP 的安全模式功能来增强您网站的安全性

2024-01-15 0 269

正文:

随着越来越多的用户使用PHP环境,相关的安全问题也变得越来越重要。PHP 环境提供的安全模式是一个非常重要的嵌入式安全机制。PHP 安全模式可以有效控制 PHP 环境中的一些函数(比如 system()函数),控制大部分文件操作函数的权限,禁止一些关键文件被修改(比如/etc/passwd)。但是,默认的 php.ini 配置文件不支持安全模式。

本文档将介绍如何使用 PHP 的安全模式功能来保护您网站的安全。

首先,启用 PHP 的安全模式

PHP 环境提供的安全模式是一个非常重要的嵌入式安全机制。PHP 安全模式可以有效控制 PHP 环境中的一些函数(比如 system()函数),控制大部分文件操作函数的权限,禁止一些关键文件被修改(比如/etc/passwd)。但是,默认的 php.ini 配置文件不支持安全模式。

您可以通过修改 php.ini 配置文件来启用 PHP 安全模式:

safe_mode = on

二、用户组安全

启用安全模式时,如果 safe_mode_gid 选项关闭,PHP 脚本可以访问该文件,同一用户组的用户也可以访问该文件。

因此,建议您将此选项设置为 off:

safe_mode_gid = off
注意:该选项参数仅适用于Linux 操作系统

如果不设置此设置,您可能无法操作服务器网站目录中的文件。

三、安全模式下执行程序主目录

如果您想在启用安全模式后执行一些程序,您可以指定需要执行程序的主目录,例如:

safe_mode_exec_dir = /usr/bin

一般情况下,如果不需要执行任何程序,建议不要指定执行系统程序的目录。您可以指定一个目录,然后将要执行的程序复制到该目录,例如:

safe_mode_exec_dir = /temp/cmd

但是,建议您不要执行任何程序。在这种情况下,只需将执行目录指向 web 目录:

safe_mode_exec_dir = /usr/www 

注意:执行目录的路径基于您的实际操作系统目录路径。

四,包括安全模式下的文件

如果需要在安全模式下包含一些公共文件,只需修改以下选项:

safe_mode_include_dir = /usr/www/include/

一般来说,PHP 脚本中包含的文件都是写在程序中的,可以根据你的具体需求进行设置。

五、控制 PHP 脚本可以访问的目录。

使用 open_basedir 选项可以控制 PHP 脚本只能访问指定的目录,这样可以防止 PHP 脚本访问不应该访问的文件,一定程度上减少 phpshell的危害。通常,您可以将其设置为仅访问网站目录:

open_basedir = /usr/www

六、关闭危险功能

如果启用安全模式,则不需要设置功能禁止,但出于安全考虑,建议您设置。例如,如果您不想执行执行命令的 PHP 函数,包括 system()和可以查看 PHP 信息的 phpinfo()等函数,可以通过以下设置禁用这些函数:

disable_functions = system,passthru,exec,shell_exec,popen,phpinfo,escapeshellarg,escapeshellcmd,proc_close,proc_open,dl

如果要禁止对任何文件和目录的操作,可以关闭以下与文件相关的操作。

disable_functions = system, passthru, exec, shell_exec, popen, phpinfo, escapeshellarg, escapeshellcmd, proc_close, proc_open, dl

注:以上设置只列出了一些常用的文件处理功能。您还可以将上述命令执行功能与这些文件处理功能结合起来,以抵御大多数 phpshell 威胁。

七、关闭 PHP 版本信息在 HTTP 头中的泄露

为了防止黑客获取服务器中的 PHP 版本信息,可以在 HTTP 头中禁止这些信息泄露:

expose_php = off 

在这个设置之后,当黑客试图通过执行 telnet 80 连接到您的服务器时,他们将看不到 PHP 的版本信息。

八、关闭全局变量的注册

PHP 环境下提交的变量,包括使用 POST 或 GET 命令提交的变量,都会自动注册为全局变量,可以直接访问。这对你的服务器非常不安全,所以建议你关闭注册全局变量的选项,禁止提交的变量注册为全局变量。

 register_globals = off

注意:这个选项参数在 PHP 5.3 以后的版本中已经被删除了。

当然,如果设置了这个,就需要采取合理的方式来获取相应的变量。比如获取 GET 命令提交的变量 var,需要使用$ _ get [‘var’]命令获取,设计 PHP 程序时需要注意。

九、SQL 注入保护

SQL 注入是一个非常危险的问题,小到网站后台的入侵,大到整个服务器的沦陷。

默认情况下,magic_quotes_gpc 选项是关闭的。如果打开此选项,PHP 将自动转换用户对 SQL 查询的请求(例如,将’转换为\ ‘等)。),这对防止SQL 注入攻击有很大作用,所以建议您将此选项设置为:

magic_quotes_gpc = on

注意:这个选项参数在 PHP 5.4.0 以后的版本中已经被删除了。

十、错误信息控制

一般 PHP 环境在没有连接到数据库或者其他情况下会有错误提示信息,错误信息中可能包含 PHP 脚本当前的路径信息或者查询的 SQL 语句等信息,这类信息如果暴露给黑客是不安全的,因此建议您禁止该错误提示:

display_errors = Off

如果您确实要显示错误信息,一定要设置显示错误信息的级别。例如,只显示警告以上的错误信息:

error_reporting = E_WARNING & E_ERROR

注意: 强烈建议您关闭错误提示信息。

十一、错误日志

建议您在关闭错误提示信息后,对于错误信息进行记录,便于排查服务器运行异常的原因:

log_errors = On

同时,需要设置错误日志存放的目录,建议您将 PHP 错误日志与 Apache 的日志存放在同一目录下:

error_log = /usr/local/apache2/logs/php_error.log

注意: 该文件必须设置允许 Apache 用户或用户组具有写的权限。

十二、升级 PHP 版本

PHP 新特性很好用。
较之前版本速度提升 2-3 倍。

转载请注明:汇站网 » 如何利用 PHP 的安全模式功能来增强您网站的安全性

收藏 (0)

微信扫一扫

支付宝扫一扫

点赞 (0)

感谢您的来访,获取更多精彩资源请收藏本站。

本站声明

本资源仅用于个人学习和研究使用,禁止用于任何商业环境!

 1.  本网站名称:汇站网
 2.  本站永久网址:https://www.huizhanii.com/
 3.  本站所有资源来源于网友投稿和高价购买,所有资源仅对编程人员及源代码爱好者开放下载做参考和研究及学习,本站不提供任何技术服务!
 4.  未经原版权作者许可,禁止用于任何商业环境,任何人不得擅作它用,下载者不得用于违反国家法律,否则发生的一切法律后果自行承担!
 5.  为尊重作者版权,请在下载24小时内删除!请购买原版授权作品,支持你喜欢的作者,谢谢!
 6.  若资源侵犯了您的合法权益, 请持您的版权证书和相关原作品信息来信通知我们请来信     通知我们我们会及时删除,给您带来的不便,我们深表歉意!
 7.  如下载链接失效、广告或者压缩包问题请联系站长处理!
 8.  如果你也有好源码或者教程,可以发布到网站,分享有金币奖励和额外收入!
 9.  本站资源售价只是赞助,收取费用仅维持本站的日常运营所需!
 10.  因源码具有可复制性,一经赞助 ,不得以任何形式退款。
 11.  更多详情请点击查看

汇站网 技术安全 如何利用 PHP 的安全模式功能来增强您网站的安全性 https://www.huizhanii.com/34418.html

汇站

站长资源下载中心-找源码上汇站

常见问题
  • 如果付款后没有弹出下载页面,多刷新几下,有问题联系客服!
查看详情
  • 本站所有资源版权均属于原作者所有,这里所提供资源均只能用于参考学习用,请勿直接商用。若由于商用引起版权纠纷,一切责任均由使用者承担。
查看详情

相关文章

发表评论
暂无评论
  随机评论 表情开关按钮图片
表情表情表情表情表情表情表情表情表情表情表情表情表情表情表情表情表情表情表情表情表情表情表情表情表情表情表情表情表情表情表情表情表情表情表情表情表情表情表情
登录后评论
联系官方客服

为您解决烦忧 - 24小时在线 专业服务

(汇站网)一个专注站长资源的平台网站,提供最新的网站模板和整站源码,内容包含各类精品网页模板,企业网站模板,网站模板,DIV+CSS模板,织梦模板,帝国cms模板,discuz模板,wordpress模板,个人博客论坛模板,上千种免费网页模板下载尽在汇站网.找源码上汇站.huizhanii.com