最新下载
热门教程
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
怎么通过对 Web 应用关键文件系统目录设置只读属性防止篡改实战
时间:2026-07-15 19:29:47 编辑:袖梨 来源:一聚教程网
最有效的网页防篡改手段是系统级只读权限配置。Linux用chattr +i锁定核心文件,Windows通过NTFS高级权限仅授予IIS_IUSRS读取权限,并需分离静态与动态目录、部署时自动加固、运行前校验可写性。直接给关键目录设只读,是防网页篡改最基础也最有效的手段之一。但要注意:**只读 ≠ 不能改**,必须区分“文件属性只读”和“系统级权限只读”,后者才真正起作用。实际中常因忽略权限继承、所有者限制或运行时写需求,导致网站崩掉或防护失效。
一、Linux 下用 chattr +i 锁死核心文件(最强防护)
对静态资源目录(如 /www/wwwroot/example.com/html)或配置文件(如 /etc/nginx/conf.d/site.conf),推荐用 chattr +i —— 这是内核级不可修改标记,连 root 都无法覆盖或删除,除非先 chattr -i。
- 锁定整个站点根目录(不含动态生成目录):
chattr -R +i /www/wwwroot/example.com/html - 排除缓存、上传、日志等需写入的子目录(必须提前排除):
chattr -R -i /www/wwwroot/example.com/html/uploadschattr -R -i /www/wwwroot/example.com/html/cache - 验证是否生效:
lsattr /www/wwwroot/example.com/html/index.html→ 应显示----i---------
⚠️ 注意:PHP 或 Node.js 进程若以 root 运行,+i 会彻底阻断所有写操作;务必确保上传、会话、日志等路径不在锁定范围内,否则服务异常。
二、Windows Server 上通过 NTFS 权限实现真只读
仅勾选“只读”属性毫无防护力——它只是个提示位。必须进 安全 → 高级 → 禁用继承 → 删除所有继承权限 → 新增用户组并仅赋予读取权限。
- 右键网站物理路径(如 D:inetpubwwwrootmyapp)→ 属性 → 安全 → 高级
- 点击“禁用继承” → 选“从此对象中删除所有已继承的权限”
- 点击“添加” → 输入 IIS_IUSRS(或应用池对应用户)→ 确定
- 在基本权限中,只勾选“读取和执行”“列出文件夹内容”“读取”,其余全部不勾
- 勾选“替换所有子对象的权限项”,点击确定
✅ 效果:IIS 工作进程能读代码、执行 PHP/ASP.NET,但无法修改 .html/.js/.config 文件,也无法新建或删除任何文件。
三、避开常见陷阱:动态内容与部署协同
只读不是一劳永逸。关键在于划分“静态资产”和“运行时数据”,并在部署流程中固化权限策略。
-
明确分离目录:把
/public、/static、/themes设为只读;而/storage、/runtime、/uploads单独挂载、赋写权限 -
部署脚本自动加固:CI/CD 中加入权限设置步骤,例如:
find ./public -type f -exec chmod 444 {} ;chattr -R +i ./public -
程序启动前校验可写性:在 PHP 的
index.php或 Node.js 的app.js开头加检测:if (!is_writable(__DIR__.'/storage')) { die('Critical: storage dir not writable'); }
不复杂但容易忽略:真正的只读保护,从来不是单点操作,而是目录规划 + 权限配置 + 运行时校验的组合动作。
相关文章
- 渝快办小升初报名怎样填写 07-22
- 腾讯文档如何转成Word还能保持格式不变 07-22
- 知网官网首页登录入口直达通道-知网官网首页登录入口快捷访问方法 07-22
- What is the meaning of seedance 07-22
- 洛克王国世界隐藏传送点怎么点亮 洛克王国世界隐藏传送点在哪点亮 07-22
- 哔哩哔哩漫画网页官网直达-哔哩哔哩漫画官网直达网页 07-22