本文使用「署名 4.0 国际 (CC BY 4.0)」许可协议,欢迎转载、或重新修改使用,但需要注明来源。 [署名 4.0 国际 (CC BY 4.0)](https://creativecommons.org/licenses/by/4.0/deed.zh)
本文作者: 苏洋
创建时间: 2013年04月15日
统计字数: 2204字
阅读时间: 5分钟阅读
本文链接: https://soulteary.com/2013/04/15/about-cross-site-scripting-xss-attacks.html
-----
# XSS事项 你所想知道的跨站攻击
本文简单的介绍如何在HTML文档中进行跨站点脚本(XSS)攻击在以及并避免跨站攻击出现的通用方法。
如果你不了解什么是跨站攻击,可以查看[跨站攻击介绍](https://code.google.com/p/doctype-mirror/wiki/ArticleIntroductionToXSS)。
本文提供的跨站脚本攻击的例子独立于任何特定的模版或者程序。
翻译自:[原文出处](http://soulteary.com/redirect?r=https://code.google.com/p/doctype-mirror/wiki/ArticleUtf7&k=6e0f7) VER:`Updated Oct 14, 2011 by ivan@ludios.org` 举个例子,这里有一个HTML片段:
```html
Example document: %(title)
```
那么,如果这个变量值得被进行跨站攻击,那么它最后的结果可能是这样。
```html
Example document: Cross-Site Scripting
```
脚本一般是基于`JavaScript (ECMAScript)`,当然,也可以使用其他的脚本语言,只要它支持被攻击者的浏览器,比如`VBScript`。
* 针对被攻击的页面,下面的内容包括(这里假设已经被攻击,比如文档body内部,或者a标签的`href`属性)
* 一个简单的例子,说明如何利用注射漏洞,即攻击者可以将攻击脚本注入HTML文档中,并执行该攻击脚本。
* 简单的指导,避免特别的关键词出现在上下文中,比如`escape`这类关键词。
解释为什么要这么做,如何防止XSS出现。
### 扩展阅读:
* [Introduction to Cross-Site Scripting Vulnerabilities](https://code.google.com/p/doctype-mirror/wiki/ArticleIntroductionToXSS)
* [Compartmentalizing applications within the same domain](https://code.google.com/p/doctype-mirror/wiki/ArticleCompartmentalizingApplications)
* [HOWTO filter user input in regular body text](https://code.google.com/p/doctype-mirror/wiki/ArticleXSSInBodyText)
* [HOWTO filter user input in tag attributes](https://code.google.com/p/doctype-mirror/wiki/ArticleXSSInAttributes)
* [HOWTO filter user input in URL attributes](https://code.google.com/p/doctype-mirror/wiki/ArticleXSSInUrlAttributes)
* [HOWTO filter user input in style elements and attributes](https://code.google.com/p/doctype-mirror/wiki/ArticleXSSInStyle)
* [HOWTO filter user input in JavaScript context](https://code.google.com/p/doctype-mirror/wiki/ArticleXSSInJavaScript)
* [HOWTO filter user input in JavaScript event handlers](https://code.google.com/p/doctype-mirror/wiki/ArticleXSSInEventHandlers)
* [HOWTO filter user input in HTTP headers](https://code.google.com/p/doctype-mirror/wiki/ArticleXSSInHttpHeaders)
* [HOWTO protect against malicious images and other non-HTML content](https://code.google.com/p/doctype-mirror/wiki/ArticleContentSniffing)
* [HOWTO serve untrusted files as downloads](https://code.google.com/p/doctype-mirror/wiki/ArticleUntrustedDownloads)
* [XSS事项 UTF-7: 消失的字符集](http://soulteary.com/2013/04/14/xss-event-missing-charset.html)
* [Malformed UTF-8: who said "hello%EE" can't be dangerous](https://code.google.com/p/doctype-mirror/wiki/ArticleMalformedUtf8)