Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/262.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
PHP脚本的安全性,嵌入式或其他_Php_Html_Security - Fatal编程技术网

PHP脚本的安全性,嵌入式或其他

PHP脚本的安全性,嵌入式或其他,php,html,security,Php,Html,Security,我对嵌入PHP代码的HTML网页(服务器上以“webpage.PHP”的形式存在的网页)或HTML网页引用的PHP脚本(即,实际上不是服务器上以“something.PHP”形式存在的网页的一部分并被“webpage.HTML”引用的PHP脚本)上的PHP安全性感到好奇. 说到这里,让我们说,如果任何人都知道我的PHP脚本的源代码,这将是一个非常大的问题。我知道,当您在浏览器中查看PHP页面的源代码时,不会显示PHP脚本,但是如果PHP服务器出现故障并且HTML仍然加载(这是否可能),用户是否

我对嵌入PHP代码的HTML网页(服务器上以“webpage.PHP”的形式存在的网页)或HTML网页引用的PHP脚本(即,实际上不是服务器上以“something.PHP”形式存在的网页的一部分并被“webpage.HTML”引用的PHP脚本)上的PHP安全性感到好奇. 说到这里,让我们说,如果任何人都知道我的PHP脚本的源代码,这将是一个非常大的问题。我知道,当您在浏览器中查看PHP页面的源代码时,不会显示PHP脚本,但是如果PHP服务器出现故障并且HTML仍然加载(这是否可能),用户是否能够看到PHP脚本更一般地说,用户是否有可能从web浏览器访问PHP脚本的源代码,如果有,我如何防止它?

防止简单的服务器错误配置的一个简单方法是让HTML文件包含一个位于文档根目录之外的PHP文件(位于或高于文档根目录的级别,通常为“htdocs”)。这样,如果出现短暂的错误配置,用户将获得包含文件的路径,但他们将无法直接在浏览器中加载包含的文件

如果PHP服务器出现故障,HTML仍然加载(这可能吗),用户是否能够看到PHP脚本

撇开安全漏洞不谈,当有人搞乱服务器或跨服务器迁移站点,并且PHP文件被转储到未设置为执行PHP的文件夹中时,通常会发生这种情况。这是部署PHP所付出的代价,因为部署PHP就像将文件放入文件夹一样简单

虽然泄漏PHP源代码并不理想,但您可以通过将所有敏感部署信息(如数据库密码)放入位于web根目录之外的PHP包含文件(映射到
/
URL的文件夹,通常称为
htdocs
)来缓解这种情况.更难搞砸配置来泄露信息


(对于更大、更模块化的项目,您通常会在include中完成大部分处理工作。)

我是PHP新手,如何从我的网页代码中访问这些脚本?这与我的建议基本相同。您只需在“include_once”中使用“include”并给出文件的相对或绝对路径。@bobince,谢谢你的回复,我会确保我的重要脚本不在htdocs文件夹中。在其他阅读中,我也发现很多人对他们的PHP进行了加密,你能推荐一些工具和策略来正确地进行加密吗?我自己也不太喜欢PHP加密,因为它更过分ead会破坏优化并使调试成为一件痛苦的事情。许多PHP加密方案只用于琐碎的模糊处理;为了在发生泄漏时使其真正安全,您必须将用于解密文件体的密钥放在包含文件中(再次)同意。我从来没有使用过代码加密。如果有那么重要的话,可能还有更好的方法。例如,我构建了一个电子商务服务器,它通过REST向我的PHP提供SaaS,将关键功能分离,比如在单独的机器上存储CC。正如不相关的注意事项,许多最安全的框架都是o笔源代码,所以它绝对不是一个安全漏洞,让人们能够阅读源代码,除非你做的事情像“如果($\u POST['password']=='secret12345'){…}”@byronh:那么我可以阅读你的config.php吗?