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
Jump to: navigation, search
m
m
Line 40: Line 40:
 
| Untrusted URL rendered in an HREF tag (or equivalent)
 
| Untrusted URL rendered in an HREF tag (or equivalent)
 
| &lt;a href="<span style="color:red;">UNTRUSTED DATA</span>">clickme&lt;/a>
 
| &lt;a href="<span style="color:red;">UNTRUSTED DATA</span>">clickme&lt;/a>
| URL Validation<br/>reject javascript: URL’s<br/>Whitelist http, https and other safe URL types<br/>Attribute encoding<br/>safe URL verification
+
| <ul><li>URL Validation<li>reject javascript: URL’s<li>Whitelist http, https and other safe URL types<li>Attribute encoding<li>safe URL verification</ul>
 
|-
 
|-
 
| String
 
| String

Revision as of 22:49, 15 November 2011

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
Numeric, Type safe language Any Context Cast to Numeric
String HTML Body <span>UNTRUSTED DATA</span> HTML Entity Encoding
String HTML Attribute, quoted <span id="UNTRUSTED DATA"></span> HTML Entity Encode single and double quotes
String HTML Attribute, unquoted <span id=UNTRUSTED DATA></span> Aggressive HTML Entity Encoding
String GET Parameter <a href="/site/search?value=UNTRUSTED DATA">clickme</a> URL Encoding
String Untrusted URL rendered in an HREF tag (or equivalent) <a href="UNTRUSTED DATA">clickme</a>
  • URL Validation
  • reject javascript: URL’s
  • Whitelist http, https and other safe URL types
  • Attribute encoding
  • safe URL verification
String CSS <div style="width: UNTRUSTED DATA;">Selection</div> Strict structural validation, CSS Hex encoding, good design
String JavaScript <script>var currentValue='UNTRUSTED DATA';</script> Strict structural JavaScript Hex Encoding
HTML Text HTML Body HTML Validation (JSoup, AnMSamy, HTML Sanitizer)
String DOM XSS DOM based XSS Prevention Cheat Sheet

How to Encode

Related Articles

OWASP Cheat Sheets Project Homepage


Authors and Primary Editors

Jim Manico - jim [at] owasp.org