我正在开发一个 ASP.Net C# + jQuery ajax 网站项目。我试图防止 xss 攻击,我知道下面不是完整的方法,但这至少是我应该做的 - 在接受用户的免费字符串输入时使用 HtmlEncode)。我真的有人来检查我是否做对了。
因此,假设我们有一个场景,其中一个页面控件是“描述”文本框,用户可以输入用于描述其产品的“免费”字符串。为了防止得到 xss 攻击输入,在服务器端的页面方法中,我使用 包裹了“描述”文本HtmlUtility.HtmlEncode()
,因此字符串在进入数据库之前将被解释为纯文本,即<script>
变为>script<
.
接下来的部分是我的疑问 - 如何在将 html 编码文本返回给用户之前处理它?
当用户想要查看输入的描述文本时,网站从数据库中检索并打印出来。
对描述执行 html 解码是否合乎逻辑,这样用户就不会看到那些奇怪的><
字符?它会破坏首先使用 HtmlEncode 的目的吗?如果是,这是正确的 jQuery 行来解码和打印文本给用户???
$("#txtDescription").val($(this).html(obj.Description).text();
非常非常感谢你