“静态”PHP页面安全性

时间:2011-07-05 17:39:13

标签: php security static

我目前正在使用PHP构建一个网站,并期待完全保护网站。目前和将来,我不打算在网站的任何地方使用SQL,甚至是用户提交的输入 - PHP页面基本上就位于简单地拼凑几个不同的HTML片段以创建整页,使用requires。 我应该注意哪些类型的漏洞(如果有的话)可以防范?

5 个答案:

答案 0 :(得分:2)

这是一个无法在一篇文章中回答的大话题。一些提示:

  • 安全地访问您的网络服务器(您的托管服务提供商应该处理此问题)
  • 尽量减少对服务器的远程访问。设置防火墙,使用正确的密码,定期运行更新
  • 保护您的代码(PHP和javascript)。确保“清理”您可能处理的任何qstrings,并且永远不要使用eval。考虑使用框架来简化此步骤。
  • 保留服务器日志并定期查看恶作剧。

这只是一个跳跃点。谷歌搜索“网络应用程序安全性”将发现大量信息。祝你好运!

答案 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上使用firewallNetfilter / 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!

之类的。