【ASP.net MVC SignalR】SignalR & MVC 防止XSS(跨網站指令)

【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標籤囉!

image

在F12的開發工具中,Html的文件內容為

image

這樣,就可以巧妙的避開XSS囉!

 

 

 

 

參考:ASP.net MVC 4網站開發美學

 


 

大家好我是饅頭,希望大家喜歡我的文章

如果有錯誤的地方請不吝指教 ^_^