网上流行的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)
上一篇 2021年7月29日 下午9:00
下一篇 2021年7月29日 下午10:00


相关推荐

  • pycharm虚拟环境升级pip

    pycharm虚拟环境升级pip前言 由于 pycharm 建立新项目时没有使用 anaconda 而是纯安装的 python 没有带任何库 使用 pycharm 时发现提示 pip 的版本过低 于是在虚拟环境的控制台下输入 easy install Upip 即可解决

    2026年3月18日
    1
  • 动态网页爬虫

    动态网页爬虫网页加载数据的另一种方式——通过API(ApplicationProgrammingInterface,应用程序编程接口)加载数据网页通过API获取数据,实时更新内容,它规定了网页与服务

    2022年7月1日
    28
  • 基于知识图谱的知识推理

    基于知识图谱的知识推理这基于知识图谱的知识推理基本概念、定义推理方法分为三类:知识图推理的相关应用基于规则的推理基于表示学习的推理基于神经网络和强化学习的推理基本概念、定义人工智能算法必须具有推理能力,推理过程必须依赖于知识工程时代的先验知识和经验,大量知识图(KGs),如YAGO(Suchanek,Kasnki,2008),WordNet(Miller,1995),Freebase(Bollacker,Evans、Paritosh、Sturge和Taylor,2008)已经开发。KGs包含大量的先验知识,同时也能有效地组织

    2022年6月11日
    72
  • OpenClaw安装配置教程

    OpenClaw安装配置教程

    2026年3月13日
    2
  • 豆包AI如何生成考试题库?教育辅助功能

    豆包AI如何生成考试题库?教育辅助功能

    2026年3月12日
    2
  • 静态测试和动态测试的区别在哪里?_软件测试中的静态测试

    静态测试和动态测试的区别在哪里?_软件测试中的静态测试1.静态测试静态测试(statictesting)就是不实际运行被测软件,而只是静态地检查程序代码、界面或文档中可能存在的错误的过程。包括对代码测试、界面测试和文档测试三个方面:    对于代码测试,主要测试代码是否符合相应的标准和规范。    对于界面测试,主要测试软件的实际界面与需求中的说明是否相符。    对于文档测试,主要测试用户手册和需求说明是否符合用户的实际需求。…

    2025年7月29日
    9

发表回复

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

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