一尘不染

PHP:如何禁用危险功能

php

如何禁用危险的 评估 功能?可以使用 ini_set 函数完成吗?

还有如何禁用以下功能?我们可以使用 ini_set 函数禁用它们吗?

allow_url_fopen  
allow_url_include
exec
shell_exec
system
passthru
popen
stream_select

评估 是坏人可用来开发事物的最危险功能之一。应该有一种无需使用 php.ini 文件就可以禁用它的机制。但应以编程方式完成。

好吧,伙计们,我正在寻找一个答案,建议他们禁用这些危险的可爱家伙,而无需进入 php.ini 文件;我的意思是如何在运行时或以编程方式禁用它们?

提前致谢....

更新资料

有人听说过PHP Shell Offender Script吗?它主要使用eval函数进行攻击。黑客能够在您的网站上运行其PHP代码。

我的问题是我不想完全禁用php.ini文件中的eval函数。例如,我已经开发了自己的MVC框架。现在,框架用户可以从框架配置文件中指定是否应禁用eval(和其他)功能。因此,这留给框架用户选择。一旦指定禁用它;我应该能够以编程方式禁用评估功能。

这就是场景。寻找有用的答案/解决方案。

再次感谢。


阅读 383

收藏
2020-05-29

共1个答案

一尘不染

要禁用功能(主要出于安全原因),可以disable_functionsphp.ini配置文件中使用指令。

但是,正如文档所述:

该指令必须在php.ini中设置。例如,您不能在httpd.conf中进行设置。

我想这太“内部”了,无法在PHP之外的其他任何地方进行配置…而且由于与安全性相关,因此由系统管理员来配置它。

尽管如此,最好的安全措施是编写干净/安全的代码,过滤所有输入,转义所有输出…并且不要让任何人在您的服务器上运行自己的代码!

2020-05-29