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

fat*_*nse 5 php apache security

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

<meta http-equiv="refresh" content="0;url=http://example.com"/>
Run Code Online (Sandbox Code Playgroud)

但我现在无法改写系统.有什么策略可以防止将来发生这种情况?

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

谢谢.

小智 3

第一步可能是调查代码被注入的位置,这可以帮助您识别根子句是什么 -

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

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

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

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

以下是一些通用建议,可帮助防止同样的情况再次发生:

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

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

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

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

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

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