为什么不能用 JS 获取剪贴板上的内容?

为什么不能用 JS 获取剪贴板上的内容?

发一串口令给朋友
朋友复制这串口令,然后访问你的网站
你在网站上用 JS 读取朋友剪贴板上的口令
根据不同的口令,显示不同的内容

然后问题来了
试过几个浏览器
发现只有 IE 浏览器上可以用 JS 读取剪贴板上的内容

读取剪贴板上的内容
想想应该很简单的样子
为什么各大浏览器都不支持呢?

假设下面这种情况:
1 我做了一个网站
2 任何人访问我的网站时,都读取它的剪贴板上的内容,保存到我的数据库里
3 你朋友问你要优酷的账号密码
4 你从自己电脑上保存的文件里复制了账号密码发给了你的朋友
5 你点开了我的网站
6 你剪贴板上的内容被我用 JS 获取到,并保存到了我的数据库里
7 你优酷的账号密码就被我知道了
8 如果我的网站访问的人特别多,每个人剪贴板上的内容都被我保存下来,一定会发现很多的隐私信息
9 然后就 GG 了

所以,为什么各大浏览器都不支持用 JS 获取剪贴板上的内容,现在你明白了吧

扩展:
支付宝的吱口令,它是不是获取了你剪贴板上的内容?
是的,没错。
支付宝是 APP
APP 可以获取剪贴板上的内容
浏览器也是 APP
浏览器本身也可以获取剪贴板上的内容
但是浏览器并不允许运行在上面的网页里的 JS 读取你的剪贴板

那么这些 APP 会不会保存你的隐私信息呢?
支付宝的账号密码,支付宝都给你保存了,你的银行卡、身份证号码等,支付宝也给你保存了(而且是你主动让它保存的,不是它偷偷获取的)
你还有什么隐私信息需要它保存的呢?

为什么不能用 JS 获取剪贴板上的内容?的更多相关文章

  1. js获取文件上传进度

    js获取文件上传进度: <input name="file" id="FileUpload" type="file" /> &l ...

  2. JQ和Js获取span标签的内容

    JQ和Js获取span标签的内容 html: 1 <span id="content">‘我是span标签的内容’</span> javascript获取: ...

  3. JS获取剪贴板图片之后的格式选择与压缩问题

    前言 某年某月的某一天,突然发现博客服务器上上传的图片都比较大,一些很小的截图都有几百kb,本来服务器带宽就慢,不优化一下说不过去. 问题细述 特别说明:本文代码因为只是用于我自己后台写markdow ...

  4. js获取input上传文件名和后缀

    var file = $("#filedata").val(); var pos = file.lastIndexOf("\\");  var filename ...

  5. Js获取file上传控件的文件路径总结

    总结一个获取file上传控件文件路径的方法 firefox由于保护机制只有文件名,不能获取完整路径. document.getElementById('file').onchange = functi ...

  6. js获取select选中的内容

    ### 获取select选中的内容 js获取select标签选中的值 var obj = document.getElementById("selectId");//获取selec ...

  7. 如何用JS获取页面上的所有标签

    最近忙的一匹,忙着大保健,都来不及写博客,今天特意抽出点时间来写一写 前两天看到一个题,是问如何从页面上获取所有的标签的并查看他们的数量,感觉还是有点意思的,所以给大家来搞一下子 我们先来捋捋思路,那 ...

  8. js获取浏览器上一访问页面URL地址,document.referrer方法

    如题,可用document.referrer方法获取上一页面的url 但是也有不可使用的情况 直接在浏览器地址栏中输入地址: 使用location.reload()刷新(location.href或者 ...

  9. JS获取页面上所有input

    for (var i = 0; i < document.getElementsByTagName("input").length; i++) { if (document. ...

随机推荐

  1. 高并发秒杀系统--Service接口设计与实现

    [DAO编写之后的总结] DAO层    -->    接口设计 + SQL编写 DAO拼接等逻辑    -->    统一在Service层完成 [Service层的接口设计] 1.接口 ...

  2. Linux之搭建远程数据库[Ubuntu:全过程]

    1.mariadb在Linux中首次进入mysql (因为此时还没有创建任何用户,mysql的root并不等效于linux中的root用户) sudo apt-get install mysql-se ...

  3. SpringBoot实战——微信点餐系统

    1.初始化项目 引入模块 <dependencies> <dependency> <groupId>org.springframework.boot</gro ...

  4. C# - 常用接口

    常用接口 用于比较接口 IComparable<T> 接口内部定义了用于比较两个对象大小的CompareTo(T t)方法,>参数时返回1,=参数时返回0,<参数时返回-1.集 ...

  5. HBSX2019 游记

    Day -4 训练戳SX2019 3月训练 ZJOI2019 Day1几天前就考了 T1真考了麻将QwQ 九条可怜的毒瘤真的是业界良心 今天中午才起,要开始调整生物钟了 9012HBOIers群里讨论 ...

  6. 抓包工具tcpdump用法说明

    tcpdump采用命令行方式对接口的数据包进行筛选抓取,其丰富特性表现在灵活的表达式上. 不带任何选项的tcpdump,默认会抓取第一个网络接口,且只有将tcpdump进程终止才会停止抓包. 例如: ...

  7. vue之生命周期钩子函数之运用

    一.什么是生命周期钩子函数: 每个 Vue 实例在被创建时都要经过一系列的初始化过程——例如,需要设置数据监听.编译模板.将实例挂载到 DOM 并在数据变化时更新 DOM 等.同时在这个过程中也会运行 ...

  8. 图文解说Win7系统机器上发布C#+ASP.NET网站

      1.     概述 在一台干净的Win7机器上发布ASP.NET网站需要准备的有: a)        .NET Framework 环境 b)        数据库 c)        IIS ...

  9. PHP生成HTML文件, SummerHtml

    2018-6-27 20:13:04 星期三 作用: 用PHP生成HTML文档, 支持标签嵌套缩进 起因: 这个东西确实也是心血来潮写的, 我很满意里边的实现缩进的机制, 大家有用到的可以看看 现在都 ...

  10. ArrayList Vector

    100000条数据时:测了4次,分别是9ms/13ms:8ms/6ms:8ms/6ms:8ms/6ms[其中/前为ArrayList数据,/后为Vector数据]1000000条数据时:测了4次,分别 ...