【ASP.net MVC SignalR】SignalR防止XSS(跨網站指令)
在做web聊天室的時候,總是會遇到XSS的攻擊,要如何有效防治這類個攻擊呢?待我說明囉!!
首先,我們要在web.config中加入一段文字
加入些文字後,我們就可以直接存取AntiXssEncoder的編碼方式囉!
之後在前幾篇文章所建立的 Chat.cs檔案中,傳送訊息的部份加上了AntiXssEncoder.HtmlEnCode()的編碼
在做web聊天室的時候,總是會遇到XSS的攻擊,要如何有效防治這類個攻擊呢?待我說明囉!!
首先,我們要在web.config中加入一段文字
<httpRuntime encoderType="System.Web.Security.AntiXss.AntiXssEncoder,System.Web,Version=4.0.0.0,Culture=neutral,PublicKeyToken=b03f5f7f11d50a3a" />
加入些文字後,我們就可以直接存取AntiXssEncoder的編碼方式囉!
之後在前幾篇文章所建立的 Chat.cs檔案中,傳送訊息的部份加上了AntiXssEncoder.HtmlEnCode()的編碼
public void Send(String Message)
{
Clients.All.addMessage(AntiXssEncoder.HtmlEncode(Message,true));
//true 若要使用 HTML 4.0 名稱實體特定字元編碼方式。 false若要只使用編碼&#DECIMAL;標記法。 MSDN說明 http://msdn.microsoft.com/zh-tw/library/hh244070.aspx
}
如此一來,使用者輸入的任何文字都會當成文字處理,不會把它當作Html標籤囉!
在F12的開發工具中,Html的文件內容為
這樣,就可以巧妙的避開XSS囉!
大家好我是饅頭,希望大家喜歡我的文章
如果有錯誤的地方請不吝指教 ^_^