代码之家  ›  专栏  ›  技术社区  ›  oglester

浏览器所见即所得最佳实践

  •  1
  • oglester  · 技术社区  · 17 年前

    我正在网页上使用富文本编辑器。NET具有阻止发布HTML标记的功能,因此我添加了一个JavaScript代码段,以在发布之前将尖括号更改为和别名对字符。服务器上的别名将替换为必要的尖括号,然后存储在数据库中。撇开XSS不谈,解决此问题的常见方法是什么。(即,是否有更好的方法?)

    3 回复  |  直到 17 年前
        1
  •  4
  •   Kibbee    17 年前

    实际上,有一种方法可以关闭该“功能”。这将允许用户发布他们想要的任何字符,并且无需使用Javascript将字符转换为别名。有关详细信息,请参阅本文 disabling request validation . 这意味着你必须自己验证,但从你帖子的声音来看,这似乎就是你想要做的。您还可以通过以下方式每页禁用它 the instructions here .

        2
  •  3
  •   Tyler    17 年前

    available here. 这将是另一种方法。

    还要保持页面指令ValidateRequest=true,这将阻止标记在请求中发送,当然,当出现此错误时,您需要处理它。人们总是能够使用firefox扩展,如 Tamper data

    Jeff最近在这里发布了一篇关于XSS攻击的直截了当的帖子。它还涉及到使您的cookies仅为HttpOnly,这是对cookie盗窃的半防御。祝你好运

        3
  •  1
  •   user4903 user4903    17 年前

    我的第一条评论是避免使用JavaScript更改尖括号。绕过这一点就像在浏览器中禁用JavaScript一样简单。几乎所有的服务器端语言都有一些实用方法,可以将一些HTML字符转换为对应的实体。例如,PHP使用htmlentities(),我确信.NET有一个等效的实用方法。至少,您可以对尖括号、圆括号和双引号进行正则表达式替换,这将为您提供一个安全的解决方案。