Web 技术研究所

我一直坚信着,Web 将会成为未来应用程序的主流

「前端资源静态化管理」的一些随想

  最近在考虑将前端资源静态化管理的问题,因为我想做的差异化加载对这东西有需求。但仔细想想,好像确实存在一点安全隐患。以前做后端的时候都是将脚本程序文件设置成只读的,因为害怕可执行的东西被篡改。如果前端的 JS 资源不是只读的就会有坑。
  还记得当年 ASP 时代的一句话木马么?当入侵一台服务器成功后在某个不起眼的页面中插入一句 Execute 直接接一个 GET 参数。即使入侵的漏洞被封了也可以从页面留下的 Execute 部位重启入侵服务器。如果被入侵的程序比较庞大,而且 Execute 写的比较隐蔽的话站长根本就没法找到。所以通常 Web 服务器的脚本程序文件都应该设置为只读。如果文件是只读的,即使服务器被入侵,也只是一次性损失,只要漏洞修复别人就进不来了。
  如果前端将 js 文件存储到 localStorage 中,那就意味着脚本是可读写的。要是哪天出现了 XSS 漏洞,前端存储的 js 文件被注入了恶意代码,那就会出现和前面介绍的同样的问题。其实不仅是 js,即使是 HTML 模板在 localStorage 中存储也同样会有问题,因为 HTML 中可以保护 SCRIPT。
  这个问题挺严重的,这也是我为何一直迟迟没这么做的原因。但再仔细想想吧,差异化加载如果真实现起来也许真可以无视掉这些。因为差异化加载不会直接执行代码,而是和服务器对比。可能会用一个 MD5 之类的东西来验证文件版本,所以篡改也只是被视为文件失效需要重新加载而已。
  虽然这个坑很容易填,但我总感觉还差了什么,总是忌惮着什么。反正确实不会太快把这东西搞定了 = =。
网名:
3.84.186.*
电子邮箱:
仅用于接收通知
提交 悄悄的告诉你,Ctrl+Enter 可以提交哦
神奇海螺
[查看全部主题]
各类Web技术问题讨论区
发起新主题
本模块采用即时聊天邮件通知的模式
让钛合金F5成为历史吧!
次碳酸钴的技术博客,文章原创,转载请保留原文链接 ^_^