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