为什么不能用 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. MySQL入门(参考官网)

    目录 一.登陆和退出 1. 远程主机 2. 登陆本机 3. 退出mysql 二.输入查询 三.创建和使用数据库 3.1 创建和选择数据库 3.2 创建表 3.3 将数据加载到表中 3.4 操作表格 3 ...

  2. 大数据基础-2-Hadoop-1环境搭建测试

    Hadoop环境搭建测试 1 安装软件 1.1 规划目录 /opt [root@host2 ~]# cd /opt [root@host2 opt]# mkdir java [root@host2 o ...

  3. thymeleaf时间格式化

    Thymeleaf模板时间格式表达式     ${#dates.format(date, 'dd/MMM/yyyy HH:mm')} 例如: <input name="enroDate ...

  4. Linux进程组调度机制分析【转】

    转自:http://oenhan.com/task-group-sched 又碰到一个神奇的进程调度问题,在系统重启过程中,发现系统挂住了,过了30s后才重新复位,真正系统复位的原因是硬件看门狗重启的 ...

  5. AngularJS初识

     AngularJS 简介 AngularJS是一个javaScript框架,是一个用JavaScript编写的库,通过指令扩展了HTML,且通过表达式绑定数据到HTML中. AngularJS使开发 ...

  6. Python 爬虫 NewCnblogs (爬虫-Django-数据分析)

    需求分析 数据库架构 注册 登录 首页 个人站点 文章+评论 后台 爬虫 数据分析 添加搜索+已上线

  7. Python-Django基础

    django目录 -settings -urls -views ******强调:setting中'django.middleware.csrf.CsrfViewMiddleware'中间件先注释掉 ...

  8. 记录一下,PC端vue开发常用框架,已经用过elementUI和iview 接下来尝试另一个Muse-UI 喜欢它的点击效果

    官网地址: https://muse-ui.org/#/zh-CN/installation

  9. Python开发【第十篇】:模块

    模块,用一砣代码实现了某个功能的代码集合. 类似于函数式编程和面向过程编程,函数式编程则完成一个功能,其他代码用来调用即可,提供了代码的重用性和代码间的耦合.而对于一个复杂的功能来,可能需要多个函数才 ...

  10. 解码escape类型的unicode

    content = Regex.Unescape(content);