所有防止XSS攻擊:表格
我有一個項目,我使用C#MVC4
在項目工作的問題,我接受URL等參數從用戶,然後進行一些處理並將處理結果發送到由用戶提供的URL。
使用以下代碼被髮送其結果是:
var context = HttpContext.Current;
context.Response.Write("<html><head>");
context.Response.Write("</head><body>");
context.Response.Write(string.Format("<form name=\"myform\" method=\"post\" action=\"{0}\" >", postUrl));
context.Response.Write("</form>");
context.Response.Write("<script type=\"text/javascript\">document.myform.submit();</script></body></html>");
context.Response.Write("</body>");
context.Response.Flush();
context.Response.Clear();
context.ApplicationInstance.CompleteRequest();
每當用戶試圖進行XSS等傳遞的一個URL值的javascript%3aalert( 'XSS')%2F%2F,JavaScript的運行並彈出顯示。
我已經嘗試Antixss.HtmlEncode()在將URL傳遞到string.Format之前對其進行編碼,但仍然無效。我也試過Antixss.UrlEncode(),但是這樣做會導致錯誤,因爲表單沒有提交到URL。
請幫我一下,有什麼我失蹤?我還可以做些什麼?
在此先感謝。
追加元素對象到DOM以及使用該用戶提供的值的那些對象的設置的屬性,其迴避所有插值攻擊......將用戶給定值作爲JSON發送。 – dandavis
對不起,我不好。請提供示例代碼。 – Hardeshorlar
我沒有經驗的C#但這似乎是一個很好的解決方案:http://weblogs.asp.net/jongalloway/preventing-javascript-encoding-xss-attacks-in-asp-net-mvc – kazandzhiro