例如,如果我有一个邮件脚本或写入数据库的脚本 - 不回显任何重要的脚本(除了谢谢或错误消息),但做了很多重要的后端工作.
直接访问它们可能带来的安全问题是什么?
是否值得阻止直接访问此类文件?
他们使用$_POST/ $_GET发送联系表单接收数据,然后邮寄或写入数据库(在良好的验证后两种情况下).
仍然可以以某种方式访问正在处理的数据(除了破解我的帐户并下载它们:)),因为显然在浏览器中打开这些文件不会给攻击者任何结果?
安全风险是,如果 Web 服务器无法执行 php 文件(因为配置被重置),它的源代码将以纯文本形式显示在浏览器中。您可能想阻止这种情况发生。
除了该场景之外,另一个问题是,如果文件实际上对数据库数据执行了某些操作,例如,即使没有任何直接输出,调用该文件也会对间接输出产生影响。这通常也是不需要的。
在您的情况下,它甚至会发送电子邮件,因此可以使用直接请求来发送电子邮件。这可能也是不需要的。
更不用说这可能会让你的东西被渗透的风险。这并不是唯一可能的地方,但您应该保持表面较小。
然而,最好的方法是将应用程序代码存储在 Webroot 之外,以便直接 HTTP 请求永远无法访问这些文件。