惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
G
Google Developers Blog
小众软件
小众软件
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
博客园 - 【当耐特】
爱范儿
爱范儿
博客园 - 聂微东
美团技术团队
大猫的无限游戏
大猫的无限游戏
The Cloudflare Blog
酷 壳 – CoolShell
酷 壳 – CoolShell
有赞技术团队
有赞技术团队
云风的 BLOG
云风的 BLOG
罗磊的独立博客
V
Visual Studio Blog
WordPress大学
WordPress大学
Stack Overflow Blog
Stack Overflow Blog
雷峰网
雷峰网
人人都是产品经理
人人都是产品经理
Blog — PlanetScale
Blog — PlanetScale
V
V2EX
The GitHub Blog
The GitHub Blog
Apple Machine Learning Research
Apple Machine Learning Research
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报

博客园 - luoluo

各地电信运营商插广告赚钱,北京联通也不甘落后 幻影t-shirt 2010 新年 每天都是GDP CorelDraw工具自动切换到选择工具的问题 要淡定 flash 0day的临时防御 Still Believe 也谈Server Limit DOS的解决方案 实现JavaScript匿名透明递归 发现一篇关于flash垃圾回收机制的文章 开春第一趟单骑上妙峰 杭州归来 IE window对象跨域的一些特性 firebug也支持debugger关键字了 把JS函数转URL形式 看到的一点进步 北京春雪 记忆力衰退
网上流行的JS HTMLDecode不安全
luoluo · 2009-03-17 · via 博客园 - luoluo

网上很多文档提到一个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 onerror=alert(1) />");

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