我一直在研究有关持久XSS攻击的安全性问题,并且能够使用fortify分析此问题。

将未经验证的数据发送到Web浏览器,这可能导致浏览器执行恶意代码。

代码使用Java。

void output(OutputStream out){
  out.write(byteData);  //byteData is a data member of the class of type byte[].
}


在以上代码片段的第(2)行中,我收到了xss攻击的通知。
那么我该如何验证呢?

最佳答案

您必须先验证数据,然后再将其发送到OutputStream

void output(OutputStream out) {
    // Validate byteData code here
    out.write(byteData);
}


验证意味着检查代码是否遵守要为其设置的规则。例如,如果只想发送数字,则可以确保在发送字节数据之前,byteData只包含数字。

08-18 16:57