假设我希望使用antiXSS在针对XSS的项目的用户控件中编码<input>
标记。
searchbox.ascx
<input id="searchBox" type="text" class="QueryBox" runat="server" />
searchbox.ascx.cs
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using Microsoft.Security.Application;
namespace Project2015.Website.layout.search
{
public partial class searchbox : System.Web.UI.UserControl
{
protected void Page_Load(object sender, EventArgs e)
{
searchBox = Encoder.HtmlEncode(searchBox);
}
}
}
当我试图编译我的代码时,我得到了这个错误
错误108参数1:无法从转换"System.Web.UI.HtmlControls.HtmlInputText"到"string"
错误107的最佳重载方法匹配"Microsoft.Security.Application.Encoder.HtmlEncode(字符串)"有一些无效参数
看不出我在这里做错了什么。
搜索框是HTML控件。在编码中使用text属性。
searchBox.Text=编码器.HtmlEncode(searchBox.Text);
也可以直接在aspx文件中使用encode。
我建议最好为编码创建辅助函数,并在代码中使用辅助函数。如果你想应用一些条件,以后会更容易定制。