ative、Java和Node.js的错误,能够及时发现线上BUG,助您提升用户体验!
JavaScript黑客是这样窃取比特币的,Vue开发者不用担心!
如果你是JavaScript或者区块链开发者,如果你有关注区块链以及比特币,那么你应该听说了比特币钱包Copay被黑客攻击的事情。但是,你知道这是怎么回事吗?
总结
- 比特币钱包copay依赖event-stream模块;
- 黑客从骗取了event-stream模块的npm发布权限;
- 黑客为event-stream模块添加了依赖flatmap-stream;
- flatmap-stream含有黑客代码,仅会在copay项目中正确执行,窃取用户的密码、私钥等信息,从而盗取比特币;
- 有人说什么Vue可能遭受攻击,其实没有这回事,因为黑客代码只会在copay项目中正确执行。只有copay项目的package.json中的description字符串"A Secure Bitcoin Wallet"能够解密黑客代码;而且,黑客的代码是为copay量身定做的,对其他项目没有作用;再说,黑客是来窃取的比特币的,又不是挖矿,你的项目有比特币给人家偷吗?
Q&A
- 哪个版本的copay被攻击了?5.0.2到5.1.0
- 哪个版本的event-stream被攻击了?3.3.6
- 哪个版本的flatmap-stream被攻击了?0.1.1
- Vue会受到攻击吗?不会
另外,欢迎大家免费试用Fundebug的错误监控服务哈~
寻找flatmap-stream中的黑客代码
flatmap-stream已经被npm删除了,不过还能在UNPKG上找到代码:https://unpkg.com/flatmap-stream@0.1.1/index.min.js
index.min.js是经过压缩的代码,因此可读性很差:
var Stream=require("stream").Stream;module.exports=function(e,n){var i=new Stream,a=0,o=0,u=!1,f=!1,l=!1,c=0,s=!1,d=(n=n||{}).failures?"failure":"error",m={};function w(r,e){var t=c+1;if(e===t?(void 0!==r&&i.emit.apply(i,["data",r]),c++,t++):m[e]=r,m.hasOwnProperty(t)){var n=m[t];return delete m[t],w(n,t)}a===++o&&(f&&(f=!1,i.emit("drain")),u&&v())}function p(r,e,t){l||(s=!0,r&&!n.failures||w(e,t),r&&i.emit.apply(i,[d,r]),s=!1)}function b(r,t,n){return e.call(null,r,function(r,e){n(r,e,t)})}function v(r){if(u=!0,i.writable=!1,void 0!==r)
50000+
5万行代码练就真实本领
17年
创办于2008年老牌培训机构
1000+
合作企业
98%
就业率
