FreeTexBox控制和
「從客戶端檢測到有潛在危險的Request.Form值」你可以嘗試另一種
if(!this.Page.ClientScript.IsOnSubmitStatementRegistered("Replace"))
{
string script = @"if (Page_IsValid){FTB_API['" + txtBox.ClientID + @"'].initialized=false; FTB_API['" + txtBox.ClientID + @"'].htmlEditor.value=FTB_FreeTextBox.prototype.HtmlEncode(FTB_API['" + txtBox.ClientID + @"'].htmlEditor.value);}";
this.Page.ClientScript.RegisterOnSubmitStatement(this.Page.GetType(), "Replace", script);
}
決定,不要忘了替換的符號,當您從發送字符串服務器到客戶端應用程序
if(!String.IsNullOrEmpty(yourstring)) txtBox.Text= yourstring.Replace(">", ">").Replace("<", "<").Replace("&", "&").Replace(""", ('"').ToString()).Replace("’", "'");
在這種情況下,您不需要關閉ValidateRequest。在保存數據庫中的字符串之前,您還可以替換字符。
我使用HttpUtility.HtmlEncode(),驗證足夠嗎? – Mostafa 2010-11-02 08:32:04
@Mostafa:使用'HtmlEncode'足以抵禦XSS,但也可能有其他地方需要確保數據編碼正確,例如,如果將其存儲在數據庫中。 – Guffa 2010-11-02 09:05:28
@Mostafa:下載並使用MS AntiXSS Library,其實現與使用Server.HtmlEncode相同,但其用於擦除的charachter庫更大且更好用。 – ewitkows 2010-11-02 20:44:50