我目前正在使用PHP构建一个网站,并期待完全保护网站。目前和将来,我不打算在网站的任何地方使用SQL,甚至是用户提交的输入 - PHP页面基本上就位于简单地拼凑几个不同的HTML片段以创建整页,使用requires
。
我应该注意哪些类型的漏洞(如果有的话)可以防范?
答案 0 :(得分:2)
这是一个无法在一篇文章中回答的大话题。一些提示:
这只是一个跳跃点。谷歌搜索“网络应用程序安全性”将发现大量信息。祝你好运!
答案 1 :(得分:2)
您概述的情况没有漏洞。
如果您使用任何查询字符串变量来加载页面,则可能需要保护它们。例如:article.php?page = php-page-security。
否则,只需确保您的服务器软件定期更新到最新版本,并且可以正确保护对Web服务器的访问。听起来你的代码非常基本,而且你没有在PHP中进行任何处理,所以你应该没问题。
答案 2 :(得分:2)
您应该确保您的软件(例如网络服务器,操作系统,PHP)是最新的,具有最新的安全补丁和更新。您还可以隐藏PHP(阅读official guide或[搜索Google])(http://www.google.com/search?q=hiding+php)
通过结合您从答案中获得的所有建议,您的应用程序将更加安全。
正如@Toast所说,你最好阻止传入流量,只允许在Linux上使用firewall(Netfilter / iptables)允许端口80,除非你想要启用额外的服务,例如FTP。
如果您希望服务器和客户端之间传输的数据安全,那么HTTPS是最佳解决方案。
答案 3 :(得分:2)
可能的漏洞存在于整体服务器安全性中。 当您以这种简单的方式使用PHP时,存在一种风险,即您不能很好地了解它并且可能会忽略一些漏洞:如用户输入选项或文件访问权限,这将允许坏人将他的php上传到服务器。
PHP为包含文件的简单任务提供了太多功能。更多功能==更多风险。
为了将多个文件组合到一个网页中,我使用server-side includes,只是禁用php - 更快,更安全。
答案 4 :(得分:1)
如果您没有将“拼凑”在任何类型的用户提供的数据上,并且不在页面中包含任何用户提供的数据,那么您就像普通的静态.html文件一样容易受到攻击。
这意味着你没有这样做:
include($_GET['pageName']); // hello total server compromise
或
echo "Hello, ", $_GET['username']; // hello cross-site-scripting!
之类的。