我正在處理包含大量模塊的.NET 4.5 Web應用程序(非MVC)。 在測試過程中,我發現我的應用程序容易受到反射式跨站點腳本攻擊。試圖阻止通過URL執行惡意XSS腳本
舉例來說,這是我的樣本網址是什麼樣子像:
example.com/abc.aspx?id=1234
現在,如果有人試圖取代值id中輸入任何腳本,例如
id=<somescript>
這個腳本會得到執行。
如何阻止輸入URL中的腳本執行? 目前我不專注於基於UI的輸入元素,如文本框等
我需要一種方法來阻止通過URL執行惡意腳本。
我試圖使validateRequest財產。儘管它阻止了腳本在整個應用程序中執行,但是它存在一個問題。 它還阻止在基於UI的輸入字段(如文本框)中輸入的安全標記執行。
對於我的應用程序的用戶期望在文本域和文本框輸入一些樣本標記。
目前我只想阻止基於瀏覽器URL的XSS腳本。我怎樣才能實現它?
更新:
我試着在我的web.config文件中添加以下的自定義頁眉:
X-XSS-保護 - 但它不是由火狐
內容安全支持政策 - 它不支持IE。
這我工作的應用程序是非常大的,因此它需要佔用大量的時間,我做是爲了進行驗證的代碼更改。 有沒有什麼辦法可以在Web.config級別本身進行更改?
知道這個技巧會很有趣,特別是對於舊的項目。 –
@Bagus Tesa如果您的應用程序不需要允許標記/腳本作爲來自UI輸入元素(如文本框等)的輸入,那麼您可以安全地繼續並啓用已在web.config中設置的web.config –
中的validateRequest屬性validateRequest之一。不幸的是,網站審計員之一發現像'faq.aspx /'%20onclick =%22alert('Someauditor')%22%20ignoreme ='這樣的網址會將xss漏洞帶給網絡表單..儘管沒有代碼它將URL中的任何內容打印到文檔主體 - 只有由asp和我定義的asp web表單的「action」不知道我們是否可以覆蓋它。 –