"永恒之蓝"比特币勒索病毒(WannaCry)的攻击原理
by kris keys 骇客攻防 分享 1494688102070
此病毒其实是利用了微软 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环境变量获取可执行文件的安装地址
by ourjs keys 大话编程 分享 1494570584077
有暑假我们可能需要获取某些可执行程序的安装地址,比如说git,node.js等。

此时我们可以直接读取环境变量来获取。

在node.js中可以通过 process.env来获取所有环境变量,如:

console.log(process.env)
程序员年纪大就做不了了?这些45到60岁的码农还在写代码
by ourjs keys 大话编程 分享 1494489337516
美国劳动力的中值年龄是42岁,而StackOverflow的一项有关年龄的调查表明,40岁之后的开发人员只占开发人员总数的13%。那么其他人到哪里去了?他们被解雇了或者上升到管理岗位了吗?软件开发对于过了40岁的人来说,是不是就意味着终结?本文罗列了10位年龄超过40岁的老程序员们的故事,他们都是顶级的软件开发者,拒绝从事管理岗位,仍然活跃在开发一线,将编程作为生活收入的主要来源。
国家卫计委发文要求互联网医院全部注销
by ourjs keys 大话编程 分享 1494484087572

  国家卫计委卫生和计划生育委员会办公厅发放的《关于征求互联网诊疗管理办法(试行)(征求意见稿)和关于推进互联网医疗服务发展的意见(征求意见)意见的函》。要求本办法颁布后的15日内, 所有互联网医疗机构必须被注销, 按照本办法重新注册。按照方法的要求,大部分再注册会非常困难。 ​​​​

  过去一年里, 移动医疗公司普遍面临着无法盈利甚至无法创造收入,空有用户的状态,在资本压力下,建立线下诊所或者转型互联网医院是两种最简单的商业模式转型,但前者不足以支撑这些公司的估值甚至不足以创造盈利,后者需要直接挑战政策底线和安全风险。没有太多选择的移动医疗公司只能疯狂试探和挑战着互联网医院的政策底线,在几个月的热闹之后,这种互联网商业套路可能要告一段落了。

JavaScript中splice与slice的区别、数组的复制以及在指定位置添加删除元素
by ourjs keys JS学习 JavaScript 1494229165475
splice与slice是数组中的两个常用方法,但是很多初学者很容易将二者混淆。

slice的操作不影响原数组。会返回所选择的元素。
splice会影响原数组,而且可以使用splice往数组中指定位置添加或删除元素。返回被删除的元素。
Node.JS中如何判断递归嵌套的所有回调函数已经执行完毕,以读取目录下所有文件为例:计数比Promise方式快将近一倍
by kris keys JS学习 Node.JS 1493950875801
当一个Node.JS函数中有大量的异步操作时,如何判断所有回调均已完成就成为一个问题。以递归读取一个目录下的所有文件为例,可以有两种方法来判断异步函数是否全部结束:

Promise有一个 all 方法:

Promise.all(iterable) 方法指当所有在可迭代参数中的 promises 已完成,或者第一个传递的 promise(指 reject)失败时,返回 promise。

Node.js网页抓取:一个最简单的http请求客户端示例(request client)
by kris keys JS学习 Node.JS 1493871489348
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字符串模板表达式中的反引号怎么打?
by ourjs keys JS学习 JavaScript 1493689791273

模板字符串是ES6引入的可以在字符串中嵌入变量的表达式。与常用的单引号、双引导不同,字符串模板使用反引号表达式。

反引号一般在键盘的左上方,数据健前的第一个键,即按下Shift会显示 "~" 的那个鍵,不按Shift即为反引号。

Phantom.js维护者Slobodin退出,著名自动化测试与智能爬虫框架前景不明
by kris keys 技术前沿 分享 1493528312041
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桌面程序框架 electronnode-webkit(nw) 的出现,PhantomJS的热度出现下降。最近Phantom.js的主要维护者宣布退出。项目前景不明。
Node.JS用Socket实现FTP Server服务器和Client客户端
by kris keys JS学习 Node.JS 1493294498882

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

 近期热门 - 点击最多
  1. React Native为http网络请求添加timeout超时异常处理: 用XMLHttpRequest替换fetch发送的区别
  2. React Native使用fetch发送http登陆验证请求失败:无法读取set-cookie并显示network request failed
  3. 克服Redux的缺点在React/Native中使用消息队列,pubsub-js更加简洁的组件间通信和状态传递方法
  4. Springboot+Gradle+Mysql+Jpa最简单实例教程
  5. SpringBoot+Spring6入门指南: 使用命令行快速搭建restful web api模板
  6. 如何通过 winax 的 ActiveXObject 或 Excel.Application 往 excel 中插入一张图片
  7. node.js用activex/com+自动化读写excel时查询接口、参数的调试方法
  8. TypeScript定义数字范围类型即仅包含【小时:分钟】的时间类型,每天指定时间点执行任务
  9. 比较测试:用百度文心一言和阿里通义千问写删除文件目录并且是async/await代码
  10. node.js使用TensorFlow入门教程二:什么是张量神经网络运算与矩阵的关系及基本入门代码

  全端社区 - 最新回复
  1. 使用PubSub-JS时ReactNative在后台运行一段时间唤醒后,组件无法scribe到publish的事件,typescript实现一个事件订阅发布组件
  2. React Native为http网络请求添加timeout超时异常处理: 用XMLHttpRequest替换fetch发送的区别
  3. ReactNative获取Android/iOS的MAC/IP地址: react-native-device-info模块的安装与使用
  4. React Native使用fetch发送http登陆验证请求失败:无法读取set-cookie并显示network request failed
  5. 克服Redux的缺点在React/Native中使用消息队列,pubsub-js更加简洁的组件间通信和状态传递方法
  6. Springboot+Gradle+Mysql+Jpa最简单实例教程
  7. SpringBoot+Spring6入门指南: 使用命令行快速搭建restful web api模板
  8. Paddle/abbyy等ocr比较:如何将图片生成可选择文字版PDF
  9. 如何通过 winax 的 ActiveXObject 或 Excel.Application 往 excel 中插入一张图片
  10. 如何用JavaScript获取某个元素copy selector的CSS选择器

  开源的 OurJS
OurJS开源博客已经迁移到 OnceOA 平台。

  关注我们
扫一扫即可关注我们:
OnceJS

OnceOA