2010-04-20 57 views
3

我很好奇在PHP代码嵌入的HTML网页(可能存在于服务器上的网页为“webpage.php”)或PHP脚本中的PHP安全性可能会被HTML页面引用(也就是说,PHP脚本实际上并不是服务器上存在的网页的一部分,如“something.php”,并被“webpage.html”引用)。说到这里,让我们说如果我的PHP脚本的源代码被任何人知道,那将是一个非常大的问题。我知道,当您在浏览器中查看PHP页面的源代码时,PHP脚本未显示,但如果PHP服务器失败并且HTML仍然加载(甚至可能),那么用户能够看到PHP脚本? 更为一般的是,用户是否可以通过Web浏览器访问PHP脚本的来源,如果有,我该如何防止它?PHP脚本的安全性嵌入式或其他

+1

就像一个不相关的音符,许多最安全的框架都是开源的,所以它肯定不是人们能够读取源代码的安全漏洞,除非你正在做类似“if($ _POST ['password'] =='secret12345'){...}” – 2010-04-20 23:04:12

+1

@byronh:所以它是好吧,如果我读你的config.php? – Tower 2010-04-21 08:32:00

回答

4

如果PHP服务器失败并且HTML仍然加载(甚至有可能),那么用户能够看到PHP脚本?

安全漏洞之外,当有人与服务器搞乱或迁移跨服务器和PHP文件,该网站已被倾倒进,这不是建立执行PHP文件夹这通常发生。这是您为PHP部署付出的代价,就像将文件放入文件夹一样简单。

虽然它从来没有理想的泄漏PHP源,你可以把所有的敏感部署的信息(如数据库密码)在PHP减轻的情况包括文件的web界面的根目录(映射到/ URL的文件夹外,通常称为htdocs)。要搞砸配置来泄漏这种情况要困难得多。

(对于更大,更模块化的项目,你通常会反正做散装包括您处理的工作。)

+0

我是PHP新手,然后如何从我的网页代码中访问这些脚本? – 2010-04-20 22:57:57

+0

这与我的建议基本相同。您只需在“include_once”上使用“include”,并给出文件的相对或绝对路径。 – 2010-04-21 02:04:46

+0

@bobince,感谢您的回复,我会确保我的重要脚本不在htdocs文件夹中。在其他阅读中,我也发现很多人都在加密他们的PHP,你能推荐任何工具和策略来正确地做这件事吗? – ubiquibacon 2010-04-21 03:35:49

2

你可以做,以防范简单的服务器错误配置一个简单的事情就是HTML文件包括PHP文件,该文件是文档根目录(域外的或文档根以上级别的,通常是“ htdocs目录“)。这样,如果出现简短的配置错误,所有用户都将获得包含文件的路径,但他们无法直接在浏览器中加载包含的文件。