网上流行的JS HTMLDecode不安全

网上流行的JS HTMLDecode不安全

网上很多文档提到一个JS利用DOM特性作HTMLDecode的方法:

function
 HTMLDecode(strEncodeHTML)
{

    

var
 div 
=
 document.createElement(

div

);
    div.innerHTML 

=
 strEncodeHTML;
    

return
 div.innerText;
}

 

这个函数是不安全的,如果参数带有用户输入,就可能导致执行JS代码:

function
 HTMLDecode(strEncodeHTML)
{

    

var
 div 
=
 document.createElement(

div

);
    div.innerHTML 

=
 strEncodeHTML;
    

return
 div.innerText;
}

HTMLDecode(

<img src=1 οnerrοr=alert(1) />

);

有人很傻很天真的以为,这个没有被appendChild到dom树的元素,应该不会执行。

 

转载于:https://www.cnblogs.com/luoluo/archive/2009/03/17/1414123.html

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/110932.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • Repeater嵌套绑定Repeater「建议收藏」

    Repeater嵌套绑定Repeater「建议收藏」Repeater嵌套Repeater的结构: cs代码:  Code private void RpTypeBind()   {       //GetQuestionTypeAndCount() 返回一个datatable        this.rptypelist.DataSource = LiftQuestionCtr.GetQuestio…

    2022年7月14日
    21
  • 如何在系统中添加字体(添加字体到系统)

    笔者最近在使用win10自带的OneNote笔记本记笔记的时候,发现笔者电脑中没有华文新魏这个字体,最开始以为是OneNote不带有这个字体,经过一段时间的收集资料后发现,是笔者电脑win10系统中不带有这个字体,现将有关概念和字体安装方法做一下记录。字体是win10系统自己带有的,其他的软件自能从win10系统中用调用,而不是说字体是某些软件自带的,比如如果office的PPT中含有华文新魏这个字体,那么OneNote中就必然也含有华文新魏这个字体,并不会存在一个软件有这个字体而另一个软件不含有这个字体

    2022年4月17日
    64
  • sql根据字段去重_sql如何去重查询

    sql根据字段去重_sql如何去重查询关于sql去重,我简单谈一下自己的简介,如果各位有建议或有不明白的欢迎多多指出。关于sql去重最常见的有两种方式:DISTINCT和ROW_NUMBER(),当然了ROW_NUMBER()除了去重还有很多其他比较重要的功能,一会我给大家简单说说我自己在实际中用到的。假如有张UserInfo表,如下图:现在我们要去掉完全重复的数据:SELECTDISTINCT*FROMdbo.UserInf…

    2022年9月27日
    1
  • 《如何让Linux安全起来》第一篇–设置普通用户登陆、禁止超级用户登陆

    《如何让Linux安全起来》第一篇–设置普通用户登陆、禁止超级用户登陆

    2021年6月4日
    153
  • Linux进程间通信

    Linux进程间通信

    2021年8月10日
    57
  • 使用NodeJS实现JWT原理「建议收藏」

    使用NodeJS实现JWT原理「建议收藏」使用NodeJS实现JWT原理jwt是jsonwebtoken的简称,本文介绍它的原理,最后后端用nodejs自己实现如何为客户端生成令牌token和校验token为什么需要会话管理我们用nodejs为前端或者其他服务提供resful接口时,http协议他是一个无状态的协议,有时候我们需要根据这个请求的上下获取具体的用户是否有权限,针对用户的上下文进行操作。所以出现了cookiessession还有jwt这几种技术的出现,都是对HTTP协议的一个补充。使得我们可以用HTTP协议+状态管理构

    2022年10月17日
    2

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号