apache 不内置页面防篡改功能,需通过文件权限锁定(755/644、chown)、https 强制跳转与 sri 校验、waf 缓存锁定关键页面,辅以目录浏览禁用、敏感文件限制及哈希校验实现综合防护。

Apache 本身不内置“页面内容防篡改”功能,它只负责按文件原样返回静态 HTML、CSS、JS 等资源。真正防止静态页面被非法修改,需从文件层防护 + 传输层加固 + 外部缓存兜底三方面入手,而不是靠 Apache 单独拦截请求就能实现。
锁定文件权限与所有权
这是最基础也最关键的一步。即使攻击者获得低权限 shell,也无法覆盖或替换网页文件。
- 网站根目录(如
/var/www/html)设为755,仅允许www-data(或apache)用户读取执行 - 所有静态文件(
.html、.css、.js等)统一设为644,禁止写入 - 递归修正归属:
chown -R www-data:www-data /var/www/html - 禁用上传目录(如
/uploads)的脚本执行:在对应<directory></directory>中加php_flag engine off或Require all denied(Apache 2.4+)
启用 HTTPS 并校验完整性
防止中间人篡改传输过程中的页面内容。
Apache Superset 是一个广泛采用的开源 BI 平台,用于 SQL 探索、图表构建和仪表板交付。当代理需要查询仓库数据、组装仪表板或使用成熟的分析界面解释指标而不是临时笔记本代码时,此技能非常有用。
- 用 Certbot 部署 Let’s Encrypt 免费证书:
sudo certbot --apache - 强制跳转 HTTPS:
RewriteEngine On+RewriteCond %{HTTPS} off+RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301] - 对关键静态资源添加
integrity属性(需提前计算 SRI 哈希):<script src="/js/main.js" integrity="sha384-xxx"></script>
借助 WAF 缓存实现“内容锁定”
这是最接近“防篡改”的实用方案——WAF 不转发真实请求,而是返回自己缓存的干净版本。
- 接入云 WAF(如阿里云、华为云、腾讯云 WAF),开启“网页防篡改”策略
- 配置规则时指定路径,例如
/index.html、/about.html,WAF 会自动缓存其响应体及关联资源(.css、.js、图片等) - 要求源站响应必须含
Content-Type头(Apache 默认已满足),否则 WAF 无法识别并缓存 - 生效后,即使黑客 SSH 进服务器改了
index.html,访客看到的仍是 WAF 缓存的原始版本
补充:Apache 内部辅助防护
虽不能阻止文件被改,但可减少攻击面和异常行为暴露。
- 禁用目录浏览:
Options -Indexes放在<directory></directory>块中 - 限制敏感文件访问:
<files> Require all denied </files> - 关闭 Server 签名:
ServerSignature Off+ServerTokens Prod,减少信息泄露 - 定期校验文件哈希(如用
sha256sum生成白名单),配合脚本告警异常变更










