任何人都知道一个修复程序会让Fortify Scan感到满意并且不会将下面的“print(x)”标记为易受跨站点脚本攻击?
public void println(String x) {
synchronized (lock) {
print(x);
println();
}
}
答案 0 :(得分:0)
Fortify认为对此的输入受到污染(可能是因为它来自参数)并且正在寻找一个例程来验证或编码该值以防止XSS。
请注意,验证应该最好作为白名单验证,并且当您知道编码的上下文时,编码应该在输出时完成(HTML属性?Javascript?)
如果您在此例程中有足够的上下文来执行其中任何一个操作,则不清楚。因此,您可能需要在数据流中更合适的地方执行此操作。您还需要告诉Fortify(通过规则)您用于验证或编码的例程是XSS的清理例程。
然后 - Fortify会很高兴,你的代码会更安全。