我们如何防止特殊标签插入文本框?在asp.net中

时间:2009-11-27 20:33:18

标签: .net asp.net

是否有任何属性或任何功能正在阻止上述问题..

我做了一个注册表格..我的朋友将标签插入用户名..它会在服务器端引发错误..我试图阻止它。验证,但..它不能..

我做到了..看看这一行......

txt_countryname.Text = HttpUtility.HtmlEncode(txt_countryname.Text);

但它不起作用... - Sikender 0秒前[删除此评论]

帮帮我......

5 个答案:

答案 0 :(得分:2)

这种行为有充分的理由 - 避免cross site scripting攻击。

可以通过将其添加到您的web.config:来禁用

<configuration>
    <system.web>  
        <pages validateRequest="false" />
    </system.web> 
</configuration>

通读this article,了解禁用请求验证的原因。

正如CodeMonkey所指出的,您也可以在@page指令中以单页为基础执行此操作:

<%@ Page validateRequest="false" %>

通过不将所有您的网页暴露给xss,这将是一种更好的方法。

答案 1 :(得分:2)

你也可以使用asp:RegularExpressionValidator 例如:

<asp:TextBox ID="txt_username" runat="server"></asp:TextBox>
<asp:RegularExpressionValidator ID="RegularExpressionValidator1" runat="server" Text="Error" ErrorMessage="some error message" ValidationExpression="^[a-zA-Z0-9]+[a-zA-Z0-9]{4,15}$" SetFocusOnError="True" ControlToValidate="txt_username">

答案 2 :(得分:2)

您希望该页面禁用脚本验证。您收到该错误的原因是因为ASP.NET默认验证传入的帖子。

Read more about it

答案 3 :(得分:1)

Server.HtmlEncode

答案 4 :(得分:1)