diff options
author | Ilia Motornyi <elmot@vaadin.com> | 2015-12-03 14:59:05 +0000 |
---|---|---|
committer | Vaadin Code Review <review@vaadin.com> | 2015-12-03 14:59:12 +0000 |
commit | 2af72ba9636bec70046394c41744f89ce4572e35 (patch) | |
tree | ccb3dc2d2239585f8c3f79eb5f131ff61ca9ce86 /documentation/advanced/advanced-security.asciidoc | |
parent | 8aa5fabe89f2967e966a64842a608eceaf80d08f (diff) | |
download | vaadin-framework-2af72ba9636bec70046394c41744f89ce4572e35.tar.gz vaadin-framework-2af72ba9636bec70046394c41744f89ce4572e35.zip |
Revert "Merge branch 'documentation'"7.6.0.beta2
This reverts commit f6874bde3d945c8b2d1b5c17ab50e2d0f1f8ff00.
Change-Id: I67ee1c30ba3e3bcc3c43a1dd2e73a822791514bf
Diffstat (limited to 'documentation/advanced/advanced-security.asciidoc')
-rw-r--r-- | documentation/advanced/advanced-security.asciidoc | 56 |
1 files changed, 0 insertions, 56 deletions
diff --git a/documentation/advanced/advanced-security.asciidoc b/documentation/advanced/advanced-security.asciidoc deleted file mode 100644 index d3b0a5249c..0000000000 --- a/documentation/advanced/advanced-security.asciidoc +++ /dev/null @@ -1,56 +0,0 @@ ---- -title: Common Security Issues -order: 8 -layout: page ---- - -[[advanced.security]] -= Common Security Issues - -[[advanced.security.sanitizing]] -== Sanitizing User Input to Prevent Cross-Site Scripting - -You can put raw HTML content in many components, such as the [classname]#Label# -and [classname]#CustomLayout#, as well as in tooltips and notifications. In such -cases, you should make sure that if the content has any possibility to come from -user input, you must make sure that the content is safe before displaying it. -Otherwise, a malicious user can easily make a -link:http://en.wikipedia.org/wiki/Cross-site_scripting[cross-site scripting -attack] by injecting offensive JavaScript code in such components. See other -sources for more information about cross-site scripting. - -Offensive code can easily be injected with [literal]#++<script>++# markup or in -tag attributes as events, such as -[parameter]#onLoad#.//// -TODO Consider an example, Alice, Bob, -etc. -//// -Cross-site scripting vulnerabilities are browser dependent, depending on the -situations in which different browsers execute scripting markup. - -Therefore, if the content created by one user is shown to other users, the -content must be sanitized. There is no generic way to sanitize user input, as -different applications can allow different kinds of input. Pruning (X)HTML tags -out is somewhat simple, but some applications may need to allow (X)HTML content. -It is therefore the responsibility of the application to sanitize the input. - -Character encoding can make sanitization more difficult, as offensive tags can -be encoded so that they are not recognized by a sanitizer. This can be done, for -example, with HTML character entities and with variable-width encodings such as -UTF-8 or various CJK encodings, by abusing multiple representations of a -character. Most trivially, you could input [literal]#++<++# and [literal]#++>++# -with [literal]#++<++# and [literal]#++>++#, respectively. The input could -also be malformed and the sanitizer must be able to interpret it exactly as the -browser would, and different browsers can interpret malformed HTML and -variable-width character encodings differently. - -Notice that the problem applies also to user input from a -[classname]#RichTextArea# is transmitted as HTML from the browser to server-side -and is not sanitized. As the entire purpose of the [classname]#RichTextArea# -component is to allow input of formatted text, you can not just remove all HTML -tags. Also many attributes, such as [parameter]#style#, should pass through the -sanitization. - - - - |