2010-08-25 38 views
1

我使用一個類似於htat菲爾Hacck提出here如何在使用AntiXssOutputEncoder時忽略元標記?

Unfortuantely的防XSS輸出編碼器,它運行在我的Site.Master猖獗,污染了元標記,像這樣:

<meta name="robots" content="all,&#32;follow" /> 

而且在它的Site.Master被簡單地寫成:

<meta name="robots" content="all, follow" /> 

這將是在正常情況下正確的輸出,但我寧願能夠跳過meta標籤中的Site.Master。

有沒有辦法做到這一點,而運行自己的HttpEncoder?

+0

你如何在你的標記中生成這個標記? – 2010-08-25 12:59:44

+0

它沒有生成 - 它寫在site.master – jmcd 2010-08-25 15:14:57

+2

那麼,AntiXSS編碼器如何參與?如果你在你的site.master中有'<%: %>'......你能簡單地用'<%= %>'替換它嗎? – Charlino 2010-08-25 16:30:16

回答

0

我不認爲你會得到這些信息,但是如果你沒有像這樣的meta標籤,你可以嘗試白名單允許的值。

的簡化版本是:

protected override void HtmlAttributeEncode(string value, TextWriter output) 
{ 
    if (value != "all,&#32;follow") 
    { 
     output.Write(AntiXss.HtmlAttributeEncode(value)); 
    } 
    else 
    { 
     output.Write(value); 
    } 
} 

並不理想,但只要我能看到,HttpEncoder不會交給你的上下文。

相關問題