专注于互联网--专注于架构

最新标签
网站地图
文章索引
Rss订阅

首页 »网站安全 » 跨站脚本攻击:抵御跨站脚本攻击关注上下文转义功能 »正文

跨站脚本攻击:抵御跨站脚本攻击关注上下文转义功能

来源: 发布时间:星期三, 2009年9月2日 浏览:31次 评论:0
  自动转义主要是为般用途模板系统开发也就是那些不完全清楚其运行内容结构和编程语言模板系统这些模板系统通常能够为web应用提供最低限度支持可能仅限于些基本转义功能开发者可以利用这些基本转义功能帮助转义返回到web应用不安全内容那些具有定规模和复杂度web应用使用这些模板系统可能会增加XSS攻击风险为什么会这样呢?请参考下面简化模板这个模板中双大括号{{和}}中间占位符(变量)被运行内容取代而这是不安全

  <body>

  <span style="color:{{USER_COLOR}};">

  Hello {{USERNAME}}, view your <a pseudo-URLs单靠HTML转义使不能抵御

  USER_COLOR 被插入是CSS范围内因此需要个能同时抵御脚本和其他CSS中危险架构(如那些expression 或者url中存在危险结构等)转义

  USER_ID 被插入是Javascript变量可能是没有位于引号中数字因此需要种迫使其为数字转义(通常Javascript-escape功能没有这个功能)否则可能会导致任意js执行其他变量也可能被强迫转化为其他数字类型包括和对象等

  这些变量插入都要求区别转义思路方法并将导致区别XSS攻击在上面例子中我们排除了很多大家可能感兴趣情况如风格标签、HTML属性(如onmouseover)以及对是否位于引号内属性值问题等

  Auto-Escape

  上面例子表明必须正确理解插入变量内容并选择安全合适转义功能对于更大规模和更复杂web应用主要有以下两个XSS相关问题:

  1. 开发者忘记向某个变量运用转义功能

  2. 开发者为插入变量运用了转义功能

  考虑到大型web应用模板和可能存在不信任内容数量的多适当转义过程变得很复杂并且容易出错并且从安全测试角度来看很难执行有效审计而Auto-Escape就能解决开发者和模板系统存在复杂性问题从而减少随的而来跨站脚本攻击威胁

  部署问题

  Auto-Escape功能设计目在于使模板系统web应用上下文感知从而能够自动运用合适转义功能主要通过以下 3个步骤来实现:

  1. 首先需要确定可能返回不信任内容区别context并为每个context提供合适转义功能例如我们并不知道需要支持HTML标签名称自身内变量插入(而不是HTML属性)所以我们没有提供任何支持加上其他原因作用包括现有转义功能和向后兼容性有效性等其结果是部分工作需要依赖于模板系统

  2. 我们开发自身解析器来解析HTML和Javascript模板这种解析器能够查询必要信息内容以进行适当转义该解析器是从性能角度考虑并在流模式运行其设计目在于简化浏览器可能不会那么严格

  3. 我们向解析过程加入个额外步骤而模板系统已
0

相关文章

读者评论

发表评论

  • 昵称:
  • 内容: