如何允许它?-6ren"> 如何允许它?-我有一个文本字段,其中显示包含 的字符串。因此,代码会引发错误。如何允许在我的文本字段中使用这些字符? 谢谢:) 最佳答案 问题是,当它发布到服务器时,无论您尝试什么,它都不起作用。这是 ASP.N-6ren">
gpt4 book ai didi

asp.net - "<"在 ASP.NET 的文本框中 --> 如何允许它?

转载 作者:行者123 更新时间:2023-12-02 02:23:09 25 4
gpt4 key购买 nike

我有一个文本字段,其中显示包含 < 和 > 的字符串。因此,代码会引发错误。如何允许在我的文本字段中使用这些字符?

谢谢:)

最佳答案

问题是,当它发布到服务器时,无论您尝试什么,它都不起作用。这是 ASP.NET XSS 保护,可以像这样禁用:

<%@ Page ... ValidateRequest="false" %>

问题是,您必须非常小心地亲自验证所有回发。更简单的方法是在发布之前使用 javascript 转义文本框的所有内容。您可以使用相同的 HTML 转义来转义它,然后在服务器端代码中取消转义。

更新:逃跑的例子。这将在回发之前在屏幕上闪烁更改的文本 - 理想的解决方案是为此使用隐藏字段,即将值分配给隐藏字段,而不是同一字段。这是最简单的版本:

<script>
function EscapeField(){
document.getElementById("your client control ID").value =
escape(document.getElementById("your client control ID").value);
}
</script>

在代码隐藏中:

this.ClientScript.RegisterOnSubmitStatement(this.GetType(), 
"EscapeField", "EscapeField();")

更新:再次警告 - 如果您像这样将 HTML 保存在数据库中,然后将其显示给客户端,则您很容易受到 XSS 攻击。有些蠕虫会发现并利用您的网站。确保清理您获得的 HTML。

关于asp.net - "<"在 ASP.NET 的文本框中 --> 如何允许它?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4146309/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com