"永恒之蓝"比特币勒索病毒(WannaCry)的攻击原理 此病毒其实是利用了微软 Microsoft Windows SMB 服务器通信协议进行传播的。并且微软已经于3月份发布了安全更新包,但是由于很多校园网、医院、政府机构专网的电脑或服务器没有安装安全更新,造成大面临感染。实际上很多运行Windows的服务器也不可能自动安装安全更新,因为这可能会导致服务器的重启。
SMB(Server Message Block,又称Common Internet File System(CIFS)),主要用来使得一个网络上的机器共享计算机文件、打印机、串行端口和通讯等资源。它也提供认证的行程间通讯机能。它主要用在装有Microsoft Windows的机器上,被称为Microsoft Windows Network。使用445端口。
攻击者利用向 Windows SMBv1 服务器445端口发送特殊设计的消息,来远程执行攻击代码。
Node.JS通过读取PATH环境变量获取可执行文件的安装地址 有暑假我们可能需要获取某些可执行程序的安装地址,比如说git,node.js等。
此时我们可以直接读取环境变量来获取。
在node.js中可以通过 process.env来获取所有环境变量,如:
console.log(process.env)
程序员年纪大就做不了了?这些45到60岁的码农还在写代码 美国劳动力的中值年龄是42岁,而StackOverflow的一项有关年龄的调查表明,40岁之后的开发人员只占开发人员总数的13%。那么其他人到哪里去了?他们被解雇了或者上升到管理岗位了吗?软件开发对于过了40岁的人来说,是不是就意味着终结?本文罗列了10位年龄超过40岁的老程序员们的故事,他们都是顶级的软件开发者,拒绝从事管理岗位,仍然活跃在开发一线,将编程作为生活收入的主要来源。
国家卫计委发文要求互联网医院全部注销 国家卫计委卫生和计划生育委员会办公厅发放的《关于征求互联网诊疗管理办法(试行)(征求意见稿)和关于推进互联网医疗服务发展的意见(征求意见)意见的函》。要求本办法颁布后的15日内, 所有互联网医疗机构必须被注销, 按照本办法重新注册。按照方法的要求,大部分再注册会非常困难。
过去一年里, 移动医疗公司普遍面临着无法盈利甚至无法创造收入,空有用户的状态,在资本压力下,建立线下诊所或者转型互联网医院是两种最简单的商业模式转型,但前者不足以支撑这些公司的估值甚至不足以创造盈利,后者需要直接挑战政策底线和安全风险。没有太多选择的移动医疗公司只能疯狂试探和挑战着互联网医院的政策底线,在几个月的热闹之后,这种互联网商业套路可能要告一段落了。
JavaScript中splice与slice的区别、数组的复制以及在指定位置添加删除元素 splice与slice是数组中的两个常用方法,但是很多初学者很容易将二者混淆。
slice的操作不影响原数组。会返回所选择的元素。
splice会影响原数组,而且可以使用splice往数组中指定位置添加或删除元素。返回被删除的元素。
Node.js网页抓取:一个最简单的http请求客户端示例(request client) Node.JS有一个request模块,可以很方便的抓取网页内容。最简单的一个示例:
var request = require('request');
request('http://www.google.com', function (error, response, body) {
if (!error && response.statusCode == 200) {
console.log(body);
}
})
由上例可以看出用request发起一个http请求确实非常简单,不过唯一的问题就是,request模块的第三方依赖比较多,导致这个模块非常地大,要占用好几M的空间。
JavaScrip字符串模板表达式中的反引号怎么打? 模板字符串是ES6引入的可以在字符串中嵌入变量的表达式。与常用的单引号、双引导不同,字符串模板使用反引号表达式。
反引号一般在键盘的左上方,数据健前的第一个键,即按下Shift会显示 "~" 的那个鍵,不按Shift即为反引号。
Phantom.js维护者Slobodin退出,著名自动化测试与智能爬虫框架前景不明 PhantomJS是一个基于WebKit的服务器端JavaScript API,它无需浏览器的支持即可实现对Web的支持,是最早的服务器端Web框架之一。系统占用极小,多用于自动化测试、智能爬虫、网络监控、网站自动截图等。PhantomJS的启动非常简单:
var page = require('webpage').create();
var url = 'http://phantomjs.org/';
page.open(url, function (status) {
//Page is loaded!
phantom.exit();
});
不过随着其他基于Node.JS的Web桌面程序框架
electron、
node-webkit(nw) 的出现,PhantomJS的热度出现下降。最近Phantom.js的主要维护者宣布退出。项目前景不明。
Node.JS用Socket实现FTP Server服务器和Client客户端 FTP协议其实就是主机和服务通过Socket进行固定格式的通信过程,当某客户端连接到FTP 服务器后,客户端发送指令:
<指令> [参数] <命令结束符:"\r\n">
服务会按以下格式返回:
<状态码> [参数或说明] <命令结束符:"\r\n">
例如以下是FileZilla FTP客户端与服务器通信的过程:
响应: 220-FileZilla Server version 0.9.43 beta
响应: 220-written by Tim Kosse (tim.kosse@filezilla-project.org)
响应: 220 Please visit http://sourceforge.net/projects/filezilla/
命令: AUTH TLS
响应: 502 SSL/TLS authentication not allowed
命令: AUTH SSL
响应: 502 SSL/TLS authentication not allowed
命令: USER newghost
响应: 331 Password required for newghost
命令: PASS **************
响应: 230 Logged on