假设我希望使用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(string)'有一些 无效的参数
看不出我在这里做错了什么。
答案 0 :(得分:0)
搜索框是HTML控件。在encode中使用text属性。
searchBox.Text = Encoder.HtmlEncode(searchBox.Text);
或者你可以直接在aspx文件中使用encode。
我建议最好为编码创建辅助函数并在代码中使用辅助函数。如果您想要应用某些条件,稍后可以更容易地进行自定义。