2017-03-08 54 views
-2

任何人都知道一個修復程序,它會使Fortify掃描開心,並且不會將下面的「print(x)」標記爲易受跨站腳本攻擊?Fortify Scan,Java print()字符串,跨站腳本

public void println(String x) { 
    synchronized (lock) { 
     print(x); 
     println(); 
    } 
} 
+0

我很確定這個工具正在使用大量的上下文信息來做出這個決定。你甚至不會給我們一瞥。你如何看待我們能夠提供幫助? – GhostCat

+0

可能的x來自某個http請求參數,並且此PrintWriter外觀類正在寫入http響應流。 – MeBigFatGuy

+0

MeBigFatGuy是正確的。該類擴展了java.io.PrintWriter,併爲javax.servlet.http.HttpServletResponse生成輸出。 –

回答

0

Fortify的認爲輸入到該被污染的(也許是因爲它來自一個參數),並尋找哪個驗證或編碼,以防止XSS值的例程。

注意驗證最好的白名單驗證完成,並且編碼應在輸出的時間內完成,當你知道了編碼的情況下(HTML屬性?使用Javascript?)

它如果不明確在這個例程中你有足夠的背景來完成其中的任何一個。因此,您可能需要在數據流中更合適的地方進行此操作。您還需要告訴Fortify(通過規則)您用於驗證或編碼的例程是XSS的清理例程。

然後 - Fortify會很高興,你的代碼會更安全。