为什么不能用 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. java8 按条件过滤集合

    //黄色部分为过滤条件list.stream().filter(user-> user.getId() > 5 && "1组".equals(user. ...

  2. Notepad++ --v7.5.8 (64bit) 安装目录显示插件(Explorer)

    https://blog.csdn.net/qq_24153697/article/details/83036761 最近想自己做一个小项目,用Notepad做IDE,但是发现已安装的Notepad没 ...

  3. windows连接oracle数据库

    本以为很简单,结果发现还是有些坑啊 1. 安装cx_oracle pip install cx_oracle 或者用whi文件,这样你能知道版本号那些https://www.lfd.uci.edu/~ ...

  4. Django 内置分页器

    先导入Django内置的分页器 在商品列表页或者购物车列表页导入 在渲染list.html导入 然后在views后台渲染方法写入 打开list页面结果

  5. eclipse工程的jdk从1.7升到1.8后报错解决办法

    报的错误信息: org.apache.jasper.JasperException: Unable to compile class for JSP 讲Tomcat从7.0升到apache-tomca ...

  6. hiho 1098 最小生成树二·Kruscal算法 (最小生成树)

    题目: 时间限制:10000ms 单点时限:1000ms 内存限制:256MB   描述 随着小Hi拥有城市数目的增加,在之间所使用的Prim算法已经无法继续使用了——但是幸运的是,经过计算机的分析, ...

  7. Visual studio 配置

    解决方案 一个解决方案的文件结构: .sln        项目目录         debug   release 其中,debug与release放置最终生成的dll或exe,项目目录下包含 头文 ...

  8. 1.2低级线程处理API

    并行扩展库相当有用,因为它允许使用更高级的抽象——任务,而不必直接和线程打交道.但有的时候,要处理的代码是在TPL和PLINQ问世(.NET4.0)之前写的.也有可能某个编程问题不能直接使用它们解决, ...

  9. SpringBoot系列二:SpringBoot自动配置原理

    主程序类的注解 @SpringBootApplication 注解,它其实是个组合注解,源码如下: @Target({ElementType.TYPE}) @Retention(RetentionPo ...

  10. C# .Net List<T>中Remove()、RemoveAt()、RemoveRange()、RemoveAll()的区别,List<T>删除汇总

    在List<T>中删除主要有Remove().RemoveAt().RemoveRange().RemoveAll()这几个方法.下面一一介绍使用方法和注意点. 我们以List<st ...