PHP,RFI和保证安全

时间:2009-08-23 04:45:35

标签: php security

我正在一个好用户输入网站域名http://www.mysite.com

的网站上工作

但我一直在阅读有关远程文件包含(RFI)的内容,这非常有趣。只需添加?page = http://www.mysite.com/index.php?或附近的东西我得到某种类型的错误(500)。 其他人使用wordpress / PHP的网站,如果我这样做,我也会收到错误。

我不知道这是否意味着脚本已运行,但如何保持输入清洁?我已经使用了REGEX,但我希望用户能够输入任何网站并相应地处理它。我当然不希望在我的脚本中的任何地方出现重大安全漏洞。

晚上在波士顿东海岸[EST]

1 个答案:

答案 0 :(得分:1)

您看到的HTTP 500错误听起来像是mod_security正在生成的模块。 mod_security根据一组安全规则扫描所有输入,其中一个安全规则可能是检查RFI。这是第一道防线。

为了防止RFI,您还可以执行其他一些操作。首先,从PHP 5.2.0开始,有一个名为allow_url_include的选项。设置为false时,这将导致PHP在包含URL的文件时抛出错误。大多数人都希望将此设置设置为 false

此外,还有消毒您的输入。有很多方法可以做到,实际上就像使用正则表达式一样,但你也可以查看filter extension。只要确保足够严格,你就不希望某人潜入../../并在文件层次结构中偷看一个或两个等级。

安全文件访问的最安全但有时也非常不切实际的方法是使用允许包含的确切文件的白名单。