This site is the archived OWASP Foundation Wiki and is no longer accepting Account Requests.
To view the new OWASP Foundation website, please visit https://owasp.org
Difference between revisions of "Abridged XSS Prevention Cheat Sheet"
From OWASP
m (→XSS Prevention Overview) |
Abraham Kang (talk | contribs) |
||
Line 46: | Line 46: | ||
| JavaScript | | JavaScript | ||
| <script>var currentValue='<span style="color:red;">UNTRUSTED DATA</span>';</script> | | <script>var currentValue='<span style="color:red;">UNTRUSTED DATA</span>';</script> | ||
− | | <ul><li>Ensure JavaScript variables are quoted</li><li>JavaScript Hex Encoding</li></ul> | + | | <ul><li>Ensure JavaScript variables are quoted</li><li>JavaScript Hex Encoding</li><li>JavaScript Unicode Encoding</li></ul> |
+ | |- | ||
+ | | String | ||
+ | | JavaScript Event Handler Attribute | ||
+ | | <input type="button" onclick="UNTRUSTED DATA" .../> | ||
+ | | <ul><li>Ensure JavaScript variables are quoted</li><li>JavaScript Hex or Unicode Encoding but NO backslash encoding (\" or \' or \\) </li></ul> | ||
|- | |- | ||
| HTML Text | | HTML Text |
Revision as of 06:36, 16 November 2011
DRAFT CHEAT SHEET - WORK IN PROGRESS
Introduction
Cross site scripting is the most common web vulnerability. It represents a serious threat because cross site scripting allows evil attacker code to run in a victim’s browser. More details about XSS can be found here: https://www.owasp.org/index.php/Cross-site_Scripting_%28XSS%29
XSS Prevention Overview
Data Type | Context | Code Sample | Defense |
---|---|---|---|
String | HTML Body | <span>UNTRUSTED DATA</span> | |
String | HTML Attribute, quoted | <span id="UNTRUSTED DATA"></span> |
|
String | HTML Attribute, unquoted | <span id=UNTRUSTED DATA></span> | |
String | GET Parameter | <a href="/site/search?value=UNTRUSTED DATA">clickme</a> | |
String | Untrusted URL rendered in an HREF tag (or other HTML link contexts) |
<a href="UNTRUSTED DATA">clickme</a> |
|
String | CSS | <div style="width: UNTRUSTED DATA;">Selection</div> |
|
String | JavaScript | <script>var currentValue='UNTRUSTED DATA';</script> |
|
String | JavaScript Event Handler Attribute | <input type="button" onclick="UNTRUSTED DATA" .../> |
|
HTML Text | HTML Body | <span>UNTRUSTED HTML</span> | |
String | DOM XSS |
Output Encoding Types
Encoding Type | Encoding Mechanism |
---|---|
HTML Entity Encoding | & --> & < --> < > --> > " --> " ' --> ' ' is not recommended / --> / forward slash is included as it helps end an HTML entity |
HTML Attribute Encoding | TODO |
URL Encoding | TODO |
JavaScript HEX Encoding | TODO |
CSS Hex Encoding | TODO |
Related Articles
OWASP Cheat Sheets Project Homepage
Authors and Primary Editors
Jim Manico - jim [at] owasp.org
Jeff Williams - jeff [at] aspectsecurity.com