【发布时间】:2010-02-20 18:45:09
【问题描述】:
我要求用户可以在 ASP.NET 文本框中输入 HTML 标记。文本框的值将保存在数据库中,然后我们需要显示它
在其他页面上,他输入了什么。为此,我在 Page 指令上设置了 ValidateRequest="false"。
现在的问题是,当用户输入以下内容时:
<script> window.location = 'http://www.xyz.com'; </script>
现在它的值保存在数据库中,但是当我在其他页面中显示它的值时,它会将我重定向到"http://www.xyz.com",这很明显
当 javascript 捕获它时。但我需要找到解决方案,因为我需要准确显示他输入的内容。
我正在考虑 Server.HtmlEncode。你能引导我找到我的要求的方向吗
【问题讨论】:
-
跨站点脚本可能会很麻烦。 rockinthesixstring 有一个很好的建议:使用像 Telerik 的商业 HTML 编辑器(DevExpress 也提供了一个)。祝你好运,记住最好总是表现得好像你期望有人尝试跨站点脚本或 SQL 注入攻击。希望他们不会(或假设他们不会因为他们是“你的”用户)只是不会削减它。