左尖括号"<"在用户输入中导致404错误

本文关键字:quot 错误 输入 用户 | 更新日期: 2023-09-27 18:05:43

我正在研究的。net应用程序在用户输入尖括号"<"作为输入时遇到错误。特别是当他们需要一些html输入时,比如<a href="www.google.com">Google</a>

我尝试了完全相同的输入,没有"<",一切都正常工作。从asp:TextBox中读取输入,并将其作为参数添加到SQL INSERT INTO语句中。我正在使用一个try catch块来捕获SqlException的,但是当我将catch语句更改为catch(Exception err)时,这个特定的问题甚至没有被捕获。我知道"<"在SQL中被用作小于操作,但是,它不应该是一个问题,因为输入是一个参数,对吗?为什么只有"<"而不是">",这也在输入中,因为两个字符都是有效的SQL操作符?下面是实际的代码片段。

try
{
    SQL_Command.Connection = SQL_Connection;
    SQL_Command.CommandText = "INSERT INTO tabl1 ([ID], [fName], [lName], [bio]) VALUES (@ID, @First, @Last, @Bio)";
    SqlParameter ID, First, Last, Bio;
    ID = new SqlParameter("@ID", id_text.Text);
    First = new SqlParameter("@First", firstName_Text.Text);
    Last = new SqlParameter("@Last", lastName_Text.Text);
    Bio = new SqlParameter("@Bio", bio_Text.Text);
    SQL_Command.Parameters.Add(ID)
    SQL_Command.Parameters.Add(Last)
    SQL_Command.Parameters.Add(First)
    SQL_Command.Parameters.Add(Bio)
    SQL_Command.ExecuteNonQuery();
}
catch (Exception err)
{
    Response.Write(err);
}

这个表的模式是:

ID int NOT NULL
fName nVarChar(255)
lName nVarChar(255)
bio nVarChar(MAX)

左尖括号"<"在用户输入中导致404错误

您得到的错误信息很可能是asp.net保护您的站点免受跨站点脚本攻击的结果。尖括号的开头看起来很可疑,因为您可能正在向页面中注入恶意javascript或HTML。这个问题之前已经在这个链接中得到了回答:一个潜在的危险请求。从客户端检测到表单值

希望有帮助!