php - 如何防止 <meta http-equiv ="refresh"> 攻击?

标签 php apache security

<分区>

我认为黑客(或脚本小子)利用网站代码库的泄漏攻击了我的网站。数据库中的帖子已更改,因此它们包含此 html:

<meta http-equiv="refresh" content="0;url=http://example.com"/>

但是我现在不能重写系统。有什么策略可以防止这种情况在未来发生?

我正在考虑将管理脚本迁移到允许访问特定域的子域。或者使用 mod_security SecFilterScanPOST 并扫描所有包含 http-equiv 等的发布请求。或者只允许来 self 的服务器或所有服务器的发布请求?

谢谢。

最佳答案

第一步可能是调查代码注入(inject)的位置,这可能会帮助您确定根子句是什么 -

  1. 如果您的网站从数据库获取内容并且注入(inject)的标签作为数据库内容的一部分被检索,则您的网站可能存在 SQL 注入(inject)缺陷或其他允许攻击者更改其中内容的漏洞。

  2. 如果每个 PHP 文件中都有此标记,则表示攻击者可以访问您的文件系统。他要么可以访问您的 FTP 或 telnet 或任何其他管理控制台,要么您的网站存在允许攻击者修改/创建网站上文件的漏洞。

  3. 您的服务器也可能存在允许攻击者进行此类访问的漏洞。

确定根本原因后,相应地修复它 =)

这里有一些通用的建议,可以帮助防止同样的事情再次发生:

  1. 通过代码审查、渗透测试或一些自动扫描检查您的网站和服务器是否存在漏洞,并相应地修复它们。

  2. 及时安装更新、修补程序和安全补丁。保持更新、更新、更新、更新...

  3. 在文件系统上分配适当的文件夹权限(读写、只读、无访问权限),并仅向用户授予必要的权限(最小权限原则)。

    • 例如,您可以考虑让网络服务器用户只能读取除上传文件夹之外的所有网络内容文件夹。
    • 配置文件通常不需要网络服务器用户可写。通常它们只能由管理员写入。还要注意不要让此类文件的内容可通过网络服务器访问(即通过网络服务器的 http://url)。将它们直接放在 Web 内容根目录之外是个好主意
    • 将任何上传文件夹放在 Web 内容根目录之外也是一个好主意
    • 我也了解文件的所有者,因为所有者可以自由更改文件的权限。
  4. 使用第 3 方组件(例如 Wordpress/Joomla 插件)时要谨慎。仅在您信任发布者时使用。只能从主站点下载。记住也要让它们保持最新状态。如有必要,禁用并删除它们

  5. 限制对管理控制台和服务的访问,如 FTP、Telnet、数据库管理控制台(例如 phpMyAdmin)等。为它们分配好的密码。最好不要让未经授权的任何人访问它(例如,使用在防火墙或配置中设置的 IP 限制,或将其隐藏在 VPN 后面)

    • 实际上,在传输密码(尤其是管理员密码)时,您应该避免使用任何明文协议(protocol)。他们通常有一个加密的替代品,例如Telnet -> SSH、FTP -> SFTP/FTP、HTTP/HTTPS。
    • 数据库端口确实应该避免从 Internet 访问。只有极少数情况下您会需要它。在大多数情况下将其配置为在环回接口(interface)上监听...

关于php - 如何防止 &lt;meta http-equiv ="refresh"> 攻击?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14890757/

相关文章:

java - java 应用程序中数据库密码(和其他重要的私有(private)字符串)的安全性

Java小程序套接字服务器权限

php - 如何在 Laravel 5 中获取 max()

php - OSX 10 - Apache 拒绝工作 - 如何调试或从头开始

php - 通过来自 MySql 数据库的 JSON 在 WP_User_Query 中放置数组

php - 如何安全地将数据传输到服务器?

python - 如何诊断Apache2.4服务错误7024 Incorrect function

android - 如何在 Android 中保护调用 web 服务

php - 命名空间和扩展类

php - preg_replace ('/σ/' , 'ς' , $cat_name);