​随着互联网新技术的涌现,网站的架构技术和涉及的资源也日益多样且复杂化。这对网站各类资源的防护工作也提出了更高的挑战和更细粒度的需求。

我们经常碰到的用户真实需求包括:

  • 我的 CMS 制作系统,会不会发布内容有问题的网页文件?
  • 我的网站允许上传图片和附件文件,这些功能会不会被利用,导致坏人偷偷上传了木马文件?
  • 万一有恶意脚本文件假冒成图片文件传上来怎么办?
  • 除了网页文件,其他一些关键文件 (比如配置文件) 也很重要,会不会被改了?

    ……

这些问题本质上是由不同资源的特点决定的,不同的资源需要有不同的检查要素。试列举常见的资源文件检查要素如下:

  • 常规资源文件 (html/css/js等)

    网页内容是否有敏感字眼?来源是否正常?
  • 脚本文件 (php/jsp/asxp等)

    文件是否会被放在网站目录之外无法监管的位置?现存脚本是否被非法篡改?
  • 用户产生的文件 (UGC文件)

    文件类型是否为 Web 应用所允许?如果类型没问题,该内容是否有害?
  • 配置文件 (config类的文件)

    修改方式是否合理?最好有详尽的修改记录。

总结几类常见资源文件的防护关注点——

iGuard6.0 网页防篡改系统能为以上各种用户场景提供丰富的、模块化的检查方式,可以通过灵活自由的配置实现网站资源的全方位防护。

以下截图仅为举例示范之用,实际场景肯定更为复杂多样。我们来看看 iGuard6.0 是如何解决以上 Web 防护需求的。

常规文件

来源是否正常的问题,可以使用 iGuard6.0 的 可信更新指定更新 模块,设置网站的目录只能由特定用户加特定进程具有合法写入的权限,拒绝其他所有更新途径。

内容文本是否正常问题,则可通过 iGuard6.0 的 发布扫描驱动扫描 模块,设置需要过滤警告的关键字文本。除了 iGuard6.0 内置过滤文字外,用户更可以自行设置自己的过滤监控文本。

脚本文件

由于脚本文件具有代码执行能力,所以关键性的脚本文件是否会被放到网站目录之外的问题,也常常会被网站管理员特别关注。可以使用 iGuard6.0 的 驱动过滤 模块,在全局范围内设置禁止产生某 (高) 些 (危) 类型的脚本文件。只有被认可的进程才能在网站目录下更新脚本文件,除此之外的操作均视作越权,可被直接禁止。

对现存脚本文件的完整性,可以使用 iGuard6.0 的 内嵌比对 模块,通过和原始文件的内容摘要作对比,确保现存文件未被非法篡改。

用户文件

在互动性越来越高的当下,网站往往不可避免地都具有因用户交互而产生的文件,这类文件的过滤和防护,一直是网站安全的重要环节。对这类资源的忧虑主要聚焦在:用户上传的文件类型是否超出设定的范围;文件类型即使没有超出限定范围,是否伪装文件或者隐藏了高危内容。

iGuard6.0 在这两方面都做了细致的考虑。如通过 驱动过滤 模块,严格限制中间件进程允许生成的文件类型,中间件进程只能在指定的上传目录下,产生无法作为脚本执行的低危类型文件,如下图中的 .gif.jpg.doc

如果希望更严密地审核上传文件的内容,可以启用 驱动扫描 模块,在上传目录有文件产生时,对文件的实际类型和内容,做进一步检查,并可以设定不同的后续处理。

配置文件

配置文件并不直接属于网页文件,但是它们也是网站资源的有机组成部分。在实际的 Web 安全渗透案例中,不乏通过修改网站配置文件,进而达成篡改网站的效果。所以,这个比较容易被人忽略的网站资源,也应被纳入防护和监控中。

对配置文件的管控,取决于实际情况,可宽松可严格。宽松的场景可以只监控配置文件的更改,但每次修改可以有快照备份;严格的则可以限制只有特定进程特定用户可以修改配置文件,此外任何组合操作都会被直接拒绝。


以上举例都是最基础的用例,实际场景中,iGuard6.0 网页防篡改系统根据具体需求,可以有更复杂的相互搭配使用组合,为网站资源防护提供更整体的防护。(朱筱丹 | 天存信息)

最新文章

  1. CSS3变形记(上):千变万化的Div
  2. GIt的命令
  3. ubuntu14.04 的网络配置
  4. cocos2dx游戏开发——微信打飞机学习笔记(四)——GameScene的搭建
  5. Android 使用PullToRefreshExpandableListView不能setAdapter的问题
  6. Android开发之PopupWindow
  7. 一步一步实现iOS微信自动抢红包
  8. Git 暂存区
  9. 一款jquery编写图文下拉二级导航菜单特效
  10. leetcode5 Implement strstr() 实现strstr函数功能
  11. hdu 4726
  12. HTML兼容总结
  13. 【HDU 1828】 Picture (矩阵周长并,线段树,扫描法)
  14. 2基本概念--python深度机器学习
  15. nginx启动报错(1113: No mapping for the Unicode character exists in the target multi-byte code page)
  16. FasfDFS整合Java实现文件上传下载
  17. java.sql.SQLException: ORA-28000: the account is locked
  18. Oracle SQL优化器简介
  19. 51Nod--1295 XOR key (可持久化tire树)
  20. flask --- 02. 路由, 初始化配置,蓝图

热门文章

  1. docker安装sonarqube
  2. Docker中安装了gitlab,忘记了管理员密码,进行管理员密码重置
  3. springboot 和spring cloud 博客分享
  4. [转]用C++实现插件体系结构
  5. js对url进行编码和解码
  6. 定位API的原理
  7. 等待唤醒机制----线程池----lambda表达式
  8. 阿里云搭建elk
  9. Vue 组件通信方案
  10. Pulsar の 保证消息的顺序性、幂等性和可靠性