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 "Projects/OWASP Java Encoder Project"
m |
m |
||
| Line 55: | Line 55: | ||
The general API pattern to utilize the Java Encoder Project is | The general API pattern to utilize the Java Encoder Project is | ||
| − | <b>"Encode.forContextName(untrustedData)"<b>, where "ContextName" is the | + | <b>"Encode.forContextName(untrustedData)"</b>, where "ContextName" is the |
name of the target context and "untrustedData" in untrusted user input. | name of the target context and "untrustedData" in untrusted user input. | ||
For example, to use in a JSP: | For example, to use in a JSP: | ||
| − | <input type="text" name="data" value="<%= | + | <b><input type="text" name="data" value="<%= |
| − | Encode.forHtmlAttribute(dataValue) %>" /> | + | Encode.forHtmlAttribute(dataValue) %>" /></b> |
| − | <textarea name="text"><%= Encode.forHtmlContent(textValue) %>" /> | + | <b><textarea name="text"><%= Encode.forHtmlContent(textValue) %>" /></b> |
| − | Generally Encode.forHtml(...) is safe but slightly less efficient for | + | Generally <b>Encode.forHtml(...)</b> is safe but slightly less efficient for |
the above two contexts (since it encodes more characters than | the above two contexts (since it encodes more characters than | ||
necessary). | necessary). | ||
| − | For JavaScript string data | + | For JavaScript string data: |
| − | <button onclick="alert('<%= Encode.forJavaScriptAttribute(alertMsg) | + | <b><button onclick="alert('<%= Encode.forJavaScriptAttribute(alertMsg) |
| − | %>');">click me</button> | + | %>');">click me</button></b> |
| + | <b> | ||
<script type="text/javascript"> | <script type="text/javascript"> | ||
var msg = "<%= Encode.forJavaScriptBlock(message) %>"; | var msg = "<%= Encode.forJavaScriptBlock(message) %>"; | ||
alert(msg); | alert(msg); | ||
</script> | </script> | ||
| + | </b> | ||
Again generally Encode.forJavaScript is safe for the above two | Again generally Encode.forJavaScript is safe for the above two | ||
| Line 84: | Line 86: | ||
Other contexts can be found in the org.owasp.Encode class methods, | Other contexts can be found in the org.owasp.Encode class methods, | ||
including CSS strings, CSS urls, XML contexts, URIs and URI | including CSS strings, CSS urls, XML contexts, URIs and URI | ||
| − | components. | + | components. |
| − | |||
| − | |||
__NOTOC__ <headertabs /> | __NOTOC__ <headertabs /> | ||
Revision as of 20:06, 30 March 2012
| PROJECT INFO What does this OWASP project offer you? |
RELEASE(S) INFO What releases are available for this project? | |||||||||||||||||||||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
| |||||||||||||||||||||||||||||||||||||||||||||||
checkout and run "mvn package" (using maven 2.0 or 3.0)
The general API pattern to utilize the Java Encoder Project is "Encode.forContextName(untrustedData)", where "ContextName" is the name of the target context and "untrustedData" in untrusted user input.
For example, to use in a JSP:
<input type="text" name="data" value="<%= Encode.forHtmlAttribute(dataValue) %>" />
<textarea name="text"><%= Encode.forHtmlContent(textValue) %>" />
Generally Encode.forHtml(...) is safe but slightly less efficient for the above two contexts (since it encodes more characters than necessary).
For JavaScript string data:
<button onclick="alert('<%= Encode.forJavaScriptAttribute(alertMsg) %>');">click me</button>
<script type="text/javascript"> var msg = "<%= Encode.forJavaScriptBlock(message) %>"; alert(msg); </script>
Again generally Encode.forJavaScript is safe for the above two context, but slightly less efficient since it encodes more characters.
Other contexts can be found in the org.owasp.Encode class methods, including CSS strings, CSS urls, XML contexts, URIs and URI components.