8wDlpd.png
8wDFp9.png
8wDEOx.png
8wDMfH.png
8wDKte.png

在将用户输入添加到 JavaScript 中的 DOM 之前对其进行清理

Junjie Zhu - MSFT 1月前

48 0

我正在为一个闲暇时间开发的聊天应用程序编写 JS,我需要根据用户提交的数据更改 HTML 标识符。这通常是概念上应该做的事情...

我在空闲时间开发一个聊天应用程序,需要根据用户提交的数据更改 HTML 标识符。这在概念上通常比较复杂,我甚至不会尝试,但这次我别无选择。我需要做的是转义 HTML id,以确保它不会允许 XSS 或破坏 HTML。

代码如下:

var user_id = escape(id)
var txt = '<div class="chut">'+
            '<div class="log" id="chut_'+user_id+'"></div>'+
            '<textarea id="chut_'+user_id+'_msg"></textarea>'+
            '<label for="chut_'+user_id+'_to">To:</label>'+
            '<input type="text" id="chut_'+user_id+'_to" value='+user_id+' readonly="readonly" />'+
            '<input type="submit" id="chut_'+user_id+'_send" value="Message"/>'+
          '</div>';

最佳方法是什么 id ?如您所见,现在我正在使用内置函数 escape() ,但我不确定与其他替代方案相比,它有多好。我主要习惯在输入进入文本节点之前对其进行清理,而不是 id 本身。

帖子版权声明 1、本帖标题:在将用户输入添加到 JavaScript 中的 DOM 之前对其进行清理
    本站网址:http://xjnalaquan.com/
2、本网站的资源部分来源于网络,如有侵权,请联系站长进行删除处理。
3、会员发帖仅代表会员个人观点,并不代表本站赞同其观点和对其真实性负责。
4、本站一律禁止以任何方式发布或转载任何违法的相关信息,访客发现请向站长举报
5、站长邮箱:yeweds@126.com 除非注明,本帖由Junjie Zhu - MSFT在本站《parsing》版块原创发布, 转载请注明出处!
最新回复 (0)
  • 你可以使用这个:

    function sanitize(string) {
      const map = {
          '&': '&amp;',
          '<': '&lt;',
          '>': '&gt;',
          '"': '&quot;',
          "'": '&#x27;',
          "/": '&#x2F;',
      };
      const reg = /[&<>"'/]/ig;
      return string.replace(reg, (match)=>(map[match]));
    }
    

    另请参阅 OWASP XSS 预防备忘单 .

返回
作者最近主题: