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 (XSS Prevention Overview)
m
Line 64: Line 64:
  
 
= How to Encode =
 
= How to Encode =
 +
 +
{| class="wikitable"
 +
|-
 +
! Encoding Type
 +
! Encoding Mechanism
 +
|-
 +
| HTML Entity Encoding
 +
|  & --> &amp;amp;<br/>< --> &amp;lt;<br/>> --> &amp;gt;<br/>" --> &amp;quot;<br/>' --> &amp;#x27;    &apos; is not recommended</br>/ --> &amp;#x2F;    forward slash is included as it helps end an HTML entity
 +
|}
  
 
= Related Articles =
 
= Related Articles =

Revision as of 22:55, 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>
String JavaScript <script>var currentValue='UNTRUSTED DATA';</script> Strict structural JavaScript Hex Encoding
HTML Text HTML Body HTML Validation (JSoup, AntiSamy, HTML Sanitizer)
String DOM XSS DOM based XSS Prevention Cheat Sheet

How to Encode

Encoding Type Encoding Mechanism
HTML Entity Encoding & --> &amp;
< --> &lt;
> --> &gt;
" --> &quot;
' --> &#x27; ' is not recommended</br>/ --> &#x2F; forward slash is included as it helps end an HTML entity

Related Articles

OWASP Cheat Sheets Project Homepage


Authors and Primary Editors

Jim Manico - jim [at] owasp.org