我对嵌入了PHP代码的HTML网页(服务器上将存在“webpage.php”的网页)或可能被HTML页面引用的PHP脚本的PHP安全性感到好奇(也就是说,一个PHP脚本实际上并不是服务器上存在的“something.php”并且被“webpage.html”引用的网页的一部分。说到这一点,让我们说如果我的PHP脚本的源代码被任何人都知道,那将是一个非常大的问题。我知道当你在浏览器中查看PHP页面的源代码时,PHP脚本没有显示,但是如果PHP服务器失败并且HTML仍然加载(这甚至可能),用户是否能够看到PHP脚本? 更一般的是,用户是否有可能通过网络浏览器访问PHP脚本的来源,如果有,我该如何预防?
答案 0 :(得分:4)
如果PHP服务器失败并且HTML仍然加载(甚至可能),用户是否能够看到PHP脚本呢?
除了安全漏洞之外,这通常发生在有人弄乱服务器或跨服务器迁移站点并且PHP文件被转储到未设置为执行PHP的文件夹中时。这是您为PHP部署支付的价格,就像将文件放入文件夹一样简单。
虽然泄露PHP源代码永远不是理想的,但您可以通过将所有敏感部署信息(如数据库密码)放在位于Web根目录之外的PHP包含文件(映射到{{1}的文件夹)来缓解这种情况。 } URL,通常称为/
)。搞砸配置以解决这个问题要困难得多。
(对于规模更大,更模块化的项目,您通常会在包含的大部分处理工作中完成。)
答案 1 :(得分:2)
要防止简单的服务器错误配置,可以做的一件简单事就是让HTML文件包含一个PHP文件,该文件位于文档根目录之外(在文档根目录级别或更高级别,通常为“htdocs”) )。这样,如果存在短暂的错误配置,则所有用户将获得包含文件的路径,但是他们将无法直接在其浏览器中加载包含的文件。