Java 如何使用Selenium WebDriver测试XSS漏洞?

Java 如何使用Selenium WebDriver测试XSS漏洞?,java,testing,selenium,webdriver,automated-tests,Java,Testing,Selenium,Webdriver,Automated Tests,我正在为我的应用程序编写自动测试。我想到的测试之一是检查应用程序中的XSS漏洞(特别是脚本/标记注入) 假设我有一个接受文本输入的字段: <input id="messageInput" name="message" /> 然而,这将我的方法与我可能提供的测试数据类型联系起来——它不够通用,无法处理诸如 <script>document.body.style.backgroundColor='red'</script> document.body.styl

我正在为我的应用程序编写自动测试。我想到的测试之一是检查应用程序中的XSS漏洞(特别是脚本/标记注入)

假设我有一个接受文本输入的字段:

<input id="messageInput" name="message" />
然而,这将我的方法与我可能提供的测试数据类型联系起来——它不够通用,无法处理诸如

<script>document.body.style.backgroundColor='red'</script>
document.body.style.backgroundColor='red'

有什么建议吗?Selenium提供了一种更干净的方法吗?

到目前为止,我还没有遇到过获取元素css属性(特别是颜色)的方法:

因此,如果您明确知道元素的类型:文本、图片等,则可以使用元素的css属性进行操作

-如何验证标记实际上没有在浏览器上呈现? -有很多方法可以判断硒是否存在:

input.findElements(By.xpath("//xpath")).size() > 0


driver.findElement(By.cssSelector(html>blablabla....)).isDisplayed()

public bool IsElementPresent(By selector)
{
    return driver.FindElements(selector).Any();
}
希望这对你有所帮助)

<script>document.body.style.backgroundColor='red'</script>
 public String jsGetColor(String css){

        JavascriptExecutor js = (JavascriptExecutor) driver;
        StringBuilder stringBuilder = new StringBuilder();
        stringBuilder.append("var x=$(\'"+css+"\');");
        stringBuilder.append("return x.css('color')");
        String res= (String) js.executeScript(stringBuilder.toString());
        return res;

    }
input.findElements(By.xpath("//xpath")).size() > 0


driver.findElement(By.cssSelector(html>blablabla....)).isDisplayed()

public bool IsElementPresent(By selector)
{
    return driver.FindElements(selector).Any();
}