我有一个 .net 表单 (c#),有几个文本框和一个简单的按钮控件,它在后端运行一个保存过程,将文本框中的任何内容保存到数据库中。这适用于只有受信任用户使用它的内部系统。目前任何盒子都没有验证。
系统可以工作,但如果在页面上的任何文本框中输入任何开始或结束标记字符(“<”或“>”),按钮将自动被禁用。您单击它并没有任何反应(我继续并通过保存按钮上的断点查看它是否甚至被触发,并且没有骰子)
我假设这是网络表单中的某种内置机制,可以防止 sql 注入攻击或其他什么?有没有办法禁用它?
-- 编辑添加相关代码。请注意,我不会深入了解保存按钮的作用,因为它一开始就不会触发。文本框(txtText_Box1)中没有“<”或“>”,它可以正常工作,没有问题。
<b>Title</b><br />
<asp:TextBox ID="txtTitle_Box1" runat="server" Width="600px"></asp:TextBox><br /><br />
<b>Text</b><br />
<asp:TextBox ID="txtText_Box1" runat="server" Width="600px" TextMode="MultiLine" Rows="4"></asp:TextBox><br /><br />
<b>Link To</b><br />
<asp:TextBox ID="txtLink_Box1" runat="server" Width="600px" /><br /><br />
<b>Link Text (always ends with >>)</b><br />
<asp:TextBox ID="txtLinkText_Box1" runat="server" Width="600px" /><br /><br />
<b>Image</b><br />
<asp:Image id="imgBox4" runat="server" /><br /><br />
<br /><br />
<asp:Button ID="btnSave" runat="server" Text="Save Changes" CssClass="cssButton1" OnClick="btnSave_Click" />
protected void btnSave_Click(object sender, EventArgs args)
{
string sTitle = string.Empty;
string sText = string.Empty;
string sURL = string.Empty;
string sLinkText = string.Empty;
sTitle = txtTitle_Box1.Text.ToString();
sText = txtText_Box1.Text.ToString();
sURL = txtLink_Box1.Text.ToString();
sLinkText = txtLinkText_Box1.Text.ToString();
....
}