如何保护我的网站

时间:2012-06-14 11:05:08

标签: php security

我知道保护任何网站都是一个非常艰难和广泛的主题,我想将这个问题与我一直在研究的具体网站联系起来。它在2004年左右被其他程序员用PHP编码,我负责管理。我的问题是它一次又一次被黑客攻击。当它被黑客入侵时我注意到了以下事情。

  1. .htaccess文件已被修改
  2. index.phpconfig.php文件已修改
  3. 管理员密码已更改
  4. 上传服务器中的文件
  5. 更改文件和文件夹的文件权限
  6. 我已经处理过代码,它已被正确转义,我认为没有sql注入的可能性。由于大多数问题与文件和权限有关,我对服务器安全性有疑问,但由于它是在2004年左右编码的原因肯定会缺少一些安全性,所以我需要在我的代码中处理其他什么工作。防止我的网站因上述问题被黑了?

    提前致谢。

4 个答案:

答案 0 :(得分:5)

由于文件已被修改,因此SQL注入错误不太可能。

获取文件的可能性:

  • 猜猜/窃取您的FTP密码
  • 破解服务器(你无法真正做任何事情)
  • 服务器上的隔离不足,这意味着其他客户可以更改您的文件(您无法对此做任何事情)
  • 远程代码执行错误

现在既然你说这个网站是从2004年开始的,可能就是它使用eval进行模板化,或include进行site.php?section=foo之类的事情,然后将foo.php包括在内这些代码都是在2004年经常完成的。所以我会快速搜索eval和正则表达式include(.*\$.*)以及require(.*\$.*)。这些都是主要的嫌疑人,取决于他们的使用方式。

答案 1 :(得分:3)

有人可能直接访问服务器,而不是特别是(a)脚本。这听起来不像是源于代码库的安全问题。

如果这种情况一再发生,您可能会考虑将整个网站移至另一个提供商。从其他地方开始,使用新密码,访问控制等。

答案 2 :(得分:2)

OWASP top 10阅读非常好。我的一些猜测。

  • 过时的操作系统存在漏洞。
  • MySQL注入,也许所有密码都以纯文本形式存储,这非常非常糟糕。对于身份验证,您应该使用类似openID的东西。此外,当你有MySQL注入时,如果可能的话,你应该更新代码以使用PDO(预备语句)。
  • 读取/写入权限未正确设置或APACHE / PHP是否在高级别运行?

我给你的建议是:

  • 阅读有关OWASP的信息。然后清楚地查找代码中的缺陷。每一行都可能是源代码问题。也许你应该抛弃旧代码,因为非常不安全?
  • 重新安装你的操作系统,因为你甚至可以拥有rootkit吗?

答案 3 :(得分:1)

  • 永远不要只使用共享主机,至少使用托管服务器/保持系统最新
  • 检查您的php.ini是否存在安全问题(您可以google)
  • 检查您的Apache / Nginx / ...配置是否覆盖
  • 切勿与服务器进行未加密通信(使用SFTP,SSH,...)
  • 永远不要相信外部价值(也来自Cookie),总是逃避/投出那些
  • 过滤用户输入(删除换行符,0x00个字符,标记,......不需要的地方)
  • 检查服务器/数据库/...
  • 的所有可能存在的用户帐户
  • 检查所有服务是否以正确的用户身份运行
  • 检查网络文件夹中的文件(写入/执行)权限
  • 逃避您在网站上展示的所有内容,甚至不相信您的数据库数据是安全的
  • 如果您使用第三方软件,请留意安全建议
  • 重新安装服务器,您可能已经扎根
  • 使用预备陈述

就是这样;)这会增强你的安全性,但经验丰富的攻击者很难。