package org.tonyzampogna.xss.sanitizer.util; import org.junit.AfterClass; import org.junit.BeforeClass; import org.junit.Test; import static org.hamcrest.CoreMatchers.is; import static org.junit.Assert.assertThat; public class XssSanitizerUtilTest { @BeforeClass public static void setEsapiResources() { System.setProperty("org.owasp.esapi.resources", "grails-app/conf"); } @AfterClass public static void unsetEsapiResources() { System.clearProperty("org.owasp.esapi.resources"); } @Test public void shouldStripOutNullCharacters() { final String output = XssSanitizerUtil.stripXSS("\0"); assertThat(output, is("")); } @Test public void shouldStripOutContentOfScriptTags() { final String output = XssSanitizerUtil.stripXSS("valid-content<script>xss-content</script>"); assertThat(output, is("valid-content")); } @Test public void shouldStripOutTrailingScriptTag() { final String output = XssSanitizerUtil.stripXSS("</script>valid-content"); assertThat(output, is("valid-content")); } @Test public void shouldStripOutStartingScriptTag() { final String output = XssSanitizerUtil.stripXSS("<script src='xss.js'>valid-content"); assertThat(output, is("valid-content")); } @Test public void shouldStripOutEvalAttribute() { final String output = XssSanitizerUtil.stripXSS("eval('xss-js-content')"); assertThat(output, is("")); } @Test public void shouldStripOutExpressionAttribute() { final String output = XssSanitizerUtil.stripXSS("expression('xss-content')"); assertThat(output, is("")); } @Test public void shouldStripOutOnloadAttribute() { final String output = XssSanitizerUtil.stripXSS("onload=xss.execute()"); assertThat(output, is("xss.execute()")); } @Test public void shouldStripOutJavascriptProtocol() { final String output = XssSanitizerUtil.stripXSS("javascript:xss.execute()"); assertThat(output, is("xss.execute()")); } @Test public void shouldStripOutVbcriptProtocol() { final String output = XssSanitizerUtil.stripXSS("vbscript:xss.execute()"); assertThat(output, is("xss.execute()")); } @Test public void shouldStripOutSrcAttribute() { final String output = XssSanitizerUtil.stripXSS("<img src='xss.jpg'>"); assertThat(output, is("<img >")); } @Test public void shouldStripOutContentOfIframeTags() { final String output = XssSanitizerUtil.stripXSS("<iframe src='xss.html'>xss-content</iframe>"); assertThat(output, is("")); } }