JavaScript奇技淫巧:代码复制陷阱

boyanx3个月前技术教程29

JavaScript奇技淫巧:代码复制陷阱

编程人员在日常的工作中,经常会在网上查找资料、复制一些现成代码使用。

这是很习惯性的操作,但有危险隐含其中,特别是JS代码。

代码复制陷阱效果展示

比如,看看下面的操作是不是很神奇:

先选中并复制网页中的内容:

然后粘贴。怪异的是:粘贴后出现的并不是只是刚刚复制的信息,而是有多出的内容:

代码复制陷阱的危害

本文的例子中,仅是增加了一行alert代码。

假如上面例子中额外的JS代码是恶意的,比如是“img洪水”、“挖矿”等等代码,甚至是木马、后门。如果直接复制使用了,那么,后果可能很严重。

代码复制陷阱原理

如上图所示操作,技术原理是:接管页面或某个元素的oncopy事件,即:复制事件,在劫持的copy事件函数中,对复制内容进行增加、修改。

代码复制陷阱源码

<!doctype html>

<html>

<head>

<title>copy</title>

<meta charset="utf-8">

<style>

pre {

background-color: #eee;

padding: .5em;

}

</style>

</head>

<body>

<h2>请复制下面这行代码:</h2>

<pre id="code">

alert("JShaman:专业的JS代码混淆加密平台");

</pre>

<script>

code.oncopy = function(e) {

var text = code.textContent

var s = 'alert("这是额外的代码,可能是恶意代码。");' + text;

navigator.clipboard.writeText(s)

document.getElementById("zt").style.display = "block";

}

</script>

<div id="zt" style="display: none;">

<h2>复制后请粘贴试试:</h2>

<textarea style="width: 700px;">

</textarea>

</div>

</body>

</html>

保存为html,打开即可测试其效果。

复制代码真正的危险

从上面代码中可以看到,核心操作只有区区几行,读源码即可知道原理。

可能有人说:复制时就能看到代码,有没有风险一看便知。

道理似乎没错,但如果复制的代码量大呢?特别是:如果代码经过加密处理了呢?

比如用JShaman可以对JS代码混淆加密:

混淆加密后的JS代码会成为:

这样,便很难看出代码的含义,即使有危险的操作,也无法察觉。

因此,再次友情提示:复制代码有风险,COPY需谨慎。

标签: js复制功能

相关文章

酷鸟浏览器邀请码分享 酷鸟浏览器邀请码获得及使用方法

国内首批合法访问境外浏览器酷鸟浏览器上线了,但酷鸟浏览器目前属于公测期,用户们想使用需要有邀请码,想要跨境浏览的朋友知道酷鸟浏览器邀请码怎么获得,怎么使用吗?下面小编带来了酷鸟浏览器邀请码获得及使用方...

网页文字不能复制?超实用提取方法,简单几步轻松搞定

遇到网页文字没法直接复制?别着急,下面给你几个简单办法,一看就会,轻松解决这个问题。用浏览器自带功能直接弄先试试右键菜单 :在网页空白处点 右键 ,找 “查看网页源代码” ,打开后按 Ctrl+F 搜...

一招儿轻松破解网页禁止复制限制,想Copy什么你说的算

很多小伙伴平时需要到网站查找一些自己想要的资料,但有时候会遇到网页禁止复制的情况,这就尴尬了!其实要解决这个问题非常的简单,只要一段脚本即可消除你的烦恼!下面呢,“ 电脑那些事儿 ”就给大...

三个神级工具!一键复制他人网站 UI!

作为一名前端开发,我们深知从零开始设计和开发一个网站既耗时又具有挑战性。幸运的是,得益于 AI 技术的发展,我们有了强大的工具来加速这一过程,甚至可以像素级地复刻一个网站。今天,我将介绍三个这样的神器...

这样设置,百度文库就可以复制了_百度文库如何复制粘贴全文

百度文库中word复制不了文字,右键复制,提示是VIP特权。按下面方面破解。一、页面空白处右键,选择“审查元素”,或直接按F12;二、按F1出现设置;或点击下面代码右上角设置按钮。三、找到倒数第二个“...

着急完成工作,需要复制文档,可是需要会员!试试我的方法

着急完成工作,需要复制文档,可是需要会员!试试我的方法!着急完成工作,需要复制文档,可是需要会员!试试我的方法!着急完成工作,需要复制文档,可是需要会员!试试我的方法!一、打开自己喜欢的或者经常使用的...

发表评论    

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。