PHP 的动态功能同时也是潜在安全性风险的,它会从网路上的任何位置主动撷取、接收及处理资料。 攻击者可能会试图传送恶意的资料和指令码,并欺骗您的服务器撷取恶意的指令码及执行它们。 攻击者也可能会试图读取和写入您服务器上的档案,以控制网站并利用网站实现自己的目的。
您可以设定PHP 设定来加强PHP 安装的安全性,并协助保护网站防止恶意攻击。 Php.ini 档案会指定PHP 在您的网站上执行时所使用的组态设定。Php.ini 档案会决定允许和禁止PHP 指令码执行的动作。
本节将说明可协助保护您PHP 应用程式的组态设定。
停用远端URL 的档案处理
allow_url_fopen = Off
allow_url_include = Off
这个设定非常重要,因为它可以防止URL 被用在include() 之类的陈述式中。将allow_url_fopen设定为「关闭」时,表示只能包含位于您网站内的档案。 您不能包含来自不同服务器的档案,但其他人也因此无法通过「远端档案包含」(RFI) 攻击来包含档案。 在RFI 攻击中,某人会在HTTP 要求中嵌入URL,希望欺骗您的指令码来执行他们的指令码。例如不允许执行像是include("http://website.com/page.php")的命令。
请藉由指定档案路径和档案名称的方式来包含您自己网站中的档案。例如,如果您有URL include行,请将它转换成:
include($_SERVER['DOCUMENT_ROOT'] . '/page.php');
如果您想要包含另一个网站的静态内容(例如include('http://myothersite.com/includes/footer.php') ),请在目前的站台中复制该内容,然后以本机方式包含该内容。