网上流行的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)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 正弦,余弦,正切,余切,正割,余割_三角函数的正弦余弦是什么意思

    正弦,余弦,正切,余切,正割,余割_三角函数的正弦余弦是什么意思三角函数三角函数包括正弦、余弦、正切、余切、正割、余割函数0基础知识正弦(Sine):sinA=CB/CA余弦(Cosine):cosA=AB/CA正切(Tangent):tanA=CB/BA余切(Cotangent):cotA=1/(tanA)BA/CB正割(Secant):secA=1/(cosA)=CA/AB余割(Cosecant):cosecA=1/(sinA)=CA/CB1y=sinx2y=cosx

    2022年10月24日
  • vmware虚拟机怎么下载安装(虚拟机安装教程win7视频)

    文章目录虚拟机VMware的下载虚拟机VMware的安装虚拟机VMware的下载虚拟机VMware的安装1.虚拟机VMware的下载官网地址:https://www.vmware.com/cn.html以下为官网界面选择“产品”—>“个人桌面”—>“WorkstationPro”选择“下载”(这里虽然是“试用Workstation15.5Pro”,但是点击“下载”之后,将会跳转到“Workstation16Pro”的下载界面)根据自己电脑的系统,比如你的电脑是Wi

    2022年4月17日
  • ubuntu安装qt教程_配置溶液的步骤

    ubuntu安装qt教程_配置溶液的步骤Qt是一个跨平台的C++图形用户界面库,我们平时所说所使用的Qt,准确的来说是它的GUI编程部分。Qt提供给应用程序开发者建立图形用户界面所需要的功能,并且Qt很容易扩展。基本上,Qt和XWindow上的Motif、Openwin、GTK等图形界面库和Windows平台上的MFC、OWL、VCl以及ATl是相同类型的东西。1.下载Qtqt下载地址2.安装Qt本人安装的是qt-opensource-linux-x64-5.9.5.run打开终端,输入命令:“sudochmod-R777q

    2022年8月31日
  • 【愚公系列】2022年03月 微信小程序-富文本编辑器

    【愚公系列】2022年03月 微信小程序-富文本编辑器<viewclass=”container”style=”height:{{editorHeight}}px;”><editorid=”editor”class=”ql-container”placeholder=”{{placeholder}}”bindstatuschange=”onStatusChange”bindready=”onEditorReady”></editor></view><scroll-views

    2022年6月10日
  • 基因调控网络 (Gene Regulatory Network) 01

    基因调控网络 (Gene Regulatory Network) 01本文为入门级的基因调控网络文章,主要介绍一些基本概念及常见的GRN模型。概念:基因调控网络(GeneRegulatoryNetwork,GRN),简称调控网络,指细胞内或一个基因组内基因和基

    2022年7月3日
  • python中的与或非运算符_python与或非

    python中的与或非运算符_python与或非目录逻辑与(and)逻辑或(or)逻辑非(not)人生小感悟昨天我们学习了if嵌套语句的基本语法,并结合实际案例学习基本用法,虽然if嵌套语句可以很好的解决我们的问题,但是有时却让代码显得有些复杂了,其实,有时我们可以用一些更简单的方式来解决需要用if嵌套解决的问题。比如,驾照考取的年龄限制问题,C1的驾照考取年龄要求必须在18周岁至70周岁之间。针对这个问题,我…

    2022年10月10日

发表回复

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

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