ASP.net 网站中导致跳转到登录页面的字符 '
The character ' causing jump to login page in ASP.net website
我有一个使用 C# 的 asp.net 网站。
我发现了字符 ' 导致重新路由到登录页面的问题。如果 textbox 中的文本类似于 abc's car 它会导致在使用按钮提交表单时跳转到登录页面,而如果文本被更改car of abc 它表现正常。
此外,并非所有 ISP 都会出现此问题。
其次,跳转到登录页面,但实际上并没有退出。如果我们按下后退按钮,会话仍处于活动状态,它会正常工作。
此外,如果 aspx 文件在标签中包含 ',例如 主席的评论,则页面将无法加载并导致重新路由以登录第
页
谁能帮帮我
这是其中一个文本框的代码:
<td style="width: 522px">
<asp:TextBox ID="TextBoxTP" runat="server" Height="90px" TextMode="MultiLine" onDrop="return false;"
onKeyPress="return limitCharsLength(this,2000);" onPaste="return limitCharsLength(this,2000);" onCopy="return false" oncut="return false"
Width="100%" AutoPostBack="True" ontextchanged="TextBoxTP_TextChanged"></asp:TextBox>
<asp:TextBoxWatermarkExtender ID="TextBoxTP_TextBoxWatermarkExtender"
runat="server" Enabled="True" TargetControlID="TextBoxTP" WatermarkText="Enter text here. Use indirect form wihtout addressing the candidate." WatermarkCssClass="watermarked">
</asp:TextBoxWatermarkExtender>
<asp:RequiredFieldValidator ID="RequiredFieldValidator1" runat="server" ErrorMessage="Enter your comments about Teaching Performance"
ControlToValidate="TextBoxTP"></asp:RequiredFieldValidator><br/>
<asp:CustomValidator ID="CustomValidator1" runat="server" ErrorMessage="Please write one or two sentences"
OnServerValidate="ValidateTextLength" ClientValidationFunction="ValidateTextLength"
ControlToValidate="TextBoxTP"></asp:CustomValidator>
<asp:Label ID="LabelPrTP" runat="server"></asp:Label>
</td>
这里是Javascript使用的:
function limitCharsLength(Object, MaxLen) {
if (Object.value.length > MaxLen - 1) {
Object.value = Object.value.substring(0, MaxLen);
}
}
function limitClipBoard(Object, MaxLen) {
if (window.clipboardData != null) {
//alert("clipboardData is not null");
if (window.clipboardData.getData("Text").length > MaxLen - 1 -
Object.value.length) {
// alert("clipboardData is very big");
window.clipboardData.setData("Text",
window.clipboardData.getData("Text").toString().substring(0, (MaxLen -
Object.value.length)));
}
}
}
function ValidateTextLength(oSrc, args) {
args.IsValid = args.Value.length > 10;}
问题已解决。问题是网络安全绕过了防火墙的负载平衡器。当服务器请求通过负载平衡器时,它会处理此类漏洞并将撇号 (') 视为文本。
我有一个使用 C# 的 asp.net 网站。 我发现了字符 ' 导致重新路由到登录页面的问题。如果 textbox 中的文本类似于 abc's car 它会导致在使用按钮提交表单时跳转到登录页面,而如果文本被更改car of abc 它表现正常。 此外,并非所有 ISP 都会出现此问题。 其次,跳转到登录页面,但实际上并没有退出。如果我们按下后退按钮,会话仍处于活动状态,它会正常工作。
此外,如果 aspx 文件在标签中包含 ',例如 主席的评论,则页面将无法加载并导致重新路由以登录第
页谁能帮帮我 这是其中一个文本框的代码:
<td style="width: 522px">
<asp:TextBox ID="TextBoxTP" runat="server" Height="90px" TextMode="MultiLine" onDrop="return false;"
onKeyPress="return limitCharsLength(this,2000);" onPaste="return limitCharsLength(this,2000);" onCopy="return false" oncut="return false"
Width="100%" AutoPostBack="True" ontextchanged="TextBoxTP_TextChanged"></asp:TextBox>
<asp:TextBoxWatermarkExtender ID="TextBoxTP_TextBoxWatermarkExtender"
runat="server" Enabled="True" TargetControlID="TextBoxTP" WatermarkText="Enter text here. Use indirect form wihtout addressing the candidate." WatermarkCssClass="watermarked">
</asp:TextBoxWatermarkExtender>
<asp:RequiredFieldValidator ID="RequiredFieldValidator1" runat="server" ErrorMessage="Enter your comments about Teaching Performance"
ControlToValidate="TextBoxTP"></asp:RequiredFieldValidator><br/>
<asp:CustomValidator ID="CustomValidator1" runat="server" ErrorMessage="Please write one or two sentences"
OnServerValidate="ValidateTextLength" ClientValidationFunction="ValidateTextLength"
ControlToValidate="TextBoxTP"></asp:CustomValidator>
<asp:Label ID="LabelPrTP" runat="server"></asp:Label>
</td>
这里是Javascript使用的:
function limitCharsLength(Object, MaxLen) {
if (Object.value.length > MaxLen - 1) {
Object.value = Object.value.substring(0, MaxLen);
}
}
function limitClipBoard(Object, MaxLen) {
if (window.clipboardData != null) {
//alert("clipboardData is not null");
if (window.clipboardData.getData("Text").length > MaxLen - 1 -
Object.value.length) {
// alert("clipboardData is very big");
window.clipboardData.setData("Text",
window.clipboardData.getData("Text").toString().substring(0, (MaxLen -
Object.value.length)));
}
}
}
function ValidateTextLength(oSrc, args) {
args.IsValid = args.Value.length > 10;}
问题已解决。问题是网络安全绕过了防火墙的负载平衡器。当服务器请求通过负载平衡器时,它会处理此类漏洞并将撇号 (') 视为文本。