要彻底解决“合法域名被污染”或“未知第三方脚本注入”的问题,仅靠杀毒软件是不够的。我们需要在服务器端部署 CSP(内容安全策略)。
CSP 是一种由浏览器执行的安全机制,它能告诉浏览器:“我的网站只允许加载哪些来源的脚本”,从而阻断未经授权的代码运行。
Apache 服务器防护配置方案
建议将 CSP 配置直接写入虚拟主机配置(<VirtualHost>)或网站根目录的 .htaccess 文件中。
1. 基础防护配置(直接阻断)
<IfModule mod_headers.c>
# 强制在所有响应(包括404/500错误页)中添加CSP头
Header always set Content-Security-Policy "default-src 'self'; script-src 'self' https://trusted-plugin.com; style-src 'self' 'unsafe-inline'; img-src 'self' data:; object-src 'none'; base-uri 'self';"
</IfModule> 2. 配置指令详解
Header always set:使用 always 关键字确保策略在错误页面中也生效,防止攻击者利用 404 页面绕过防护。script-src 'self' https://trusted-plugin.com:核心防线。仅允许加载本站自己的脚本 ('self') 和绝对信任的插件域名。请将 trusted-plugin.com 替换为您的正规插件域名,务必移除 static.bshare.cn 等可疑域名。object-src 'none':禁用 Flash、Java 等过时插件,减少攻击面。default-src 'self':默认所有资源(图片、CSS、AJAX等)只能从本站加载。3. 过渡方案:报告模式
如果您不确定配置是否会影响网站现有功能,可以先使用 Report-Only 模式进行灰度测试。该模式下浏览器只会报告违规行为,但不会阻止加载。
# 先使用 Report-Only 模式观察日志
Header always set Content-Security-Policy-Report-Only "default-src 'self'; script-src 'self'; ..." 如果您发现网站已被植入上述代码,请按以下步骤紧急处理:
bshareC0.js 或 buttonLite.js,彻底删除相关代码块。footer.php、Typecho 的 footer.php 或其他 CMS 的公共模板文件。总结: 对于网站运维而言,“不信任第三方” 是最基本的安全准则。通过及时清理被污染的插件并配合 CSP 策略,我们可以构建一道坚不可摧的防线,让恶意劫持无处遁形。
转载请注明:半亩方塘 » 网站点击偶尔跳转到非法网站?浏览器拦截“疑似危险内容”及 bShare 插件劫持排查与 CSP 防御方案
页面: 1 2