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