2KB项目,专业的源码交易网站 帮助 收藏 每日签到

构建平安的 Node.js 使用

  • 时间:2019-05-14 16:49 编辑:2KB 来源:2KB.COM 阅读:440
  • 扫一扫,手机访问
  • 分享
摘要:
Node.js 英文原文:Building Secure Node.js Applications

当开发者意想到我在存眷Node.js使用的审计和平安时,我常常听到一些异样的工作在以分歧的方式反复。

我该做甚么来确认我正在写的是平安的?

重中之重,没有致命兵器。不论你怎样尽力,你的代码总会有一些bug—有点会招致平安问题而有点不会。作为开发者,我们经常是这些bug的本源,我们也有义务在产品化过程当中尽量多的消弭它们。

依据我的以往经历,本文将会商一些Node.js例子,这些例子来自于在我们的协助下更平安编码后获得了成功的组织中。

了解你require( )的模块

Node.js的文明表现在经过npm存在小型、可重用、开源的模块。一个Node使用的大部分经过混杂这些可重用的模块来构建的。

就如工匠选择研讨砖块来砌墙,你终极对你require( )的担任。假如你在公司任务,那末你对所需求的工具要分管他们的职责。假如你在做开源,那末义务会逐步减少。

关于甚么可以组建一个高质量的模块和怎么选择有非常多争辩。下面是一些Start点。

nodezoo

nodezoo.com是一个npm搜刮引擎,它依据一些要素将模块分为0-6级。就像网站说的那样,“要素分得越细越好”。这抵消除平安隐患没有太多协助,但这确实是了解你所运用模块功能的一个道路。

The Node Security Project(Node平安方案)

另外一个(有我倡议并管理的)方案是Node Security Project(Node平安方案)。我们供给了一个API,开发者或CI系统可以应用它测试项目标依靠,并找进项目中运用的模块能否有已知的平安隐患。这协助我们找到一些可以容易地被发明并应用的平安隐患,让它们阔别我们的使用。浅显地说,“软柿子(low hanging fruit)”。

你可以如许用这个API反省你的项目:

npm shrinkwrap

curl -X POST https://nodesecurity.io/validate/shrinkwrap -d @npm-shrinkwrap.json 
  -H “content-type: application/json

如今你应当对怎么选择模块更有决心了,让我们看看怎么把他们拼在一同,让我们更有掌握地构建波动的使用。

整合在一同会更好

你可以施行运用非常多的技术把持计划来包管高质量的代码,此中有两个是关键和根底:代码剖析(linting)和测试(testing)。

&yet工程中,我们运用precommit-hook 协助我们确保代码的质量和完好性。

Toolsprecommit-hook可以经过下面的方法安装:

npm install precommit-hook

这个Tools请求代码在提交到Git之前,必需经过代码剖析和测试进程。

代码剖析包管代码的可读性,并能防止容易的错误;测试可以确保你提交的代码不会毁坏已有的功用。

如今,我既不计划领导你怎么编写测试,也不辩证你该运转哪一种测试器。

我想说的是我所看到的景象:我们审查的非常多使用顺序的代码测试都是不敷的,虽然它的确有非常多测试用例,可是凡是这些测试用例都是“正常”(轻易经过测试的)的测试用例,而不是一些“歹意”(临界值的,轻易让顺序犯错的)的测试用例。

当你把这些小的功用模块组合起来组成更大的顺序时,该当思索,即便由优良的工程师采取功用波动的小模块和最好的接口构建的大项目,也有可能某一天忽然解体。所以功用模块整合起来,需求不时的代码审查和测试。

做更好的CodeSmith

想要做到在你的使用顺序、团队、四周的天下中针对平安方面具有最大的影响力?你需求进修平安破绽,在你地点的情况或框架内,经过反省其别人写的代码修复破绽,并分享你所学到的常识,经过如许的进程考验晋升本人。

第一步就是进修十佳开放网站使用顺序平安项目(OWASP Top 10)。它可让我们晓得最多见的破绽根底常识,最少是网站使用顺序中的破绽常识,它的列表和我们做代码审查时做的工作是一致的。

当你用常识武装本人,作更高的请求并思索平安性,你会发明你很轻易成为团队变更和生长的催化剂。

依据你学到的工具,花点工夫给其他开发者说明平安破绽,你会了解我在文中特殊提到的工具,请和你四周的人分享这些常识。

花工夫分享你是怎么定位问题,问题的影响是甚么,和你是怎样得出结论的。和别人分享的关键是,让别人获得新常识并有效地运用新常识。

如今,我们曾经半途而废了?

如今,我们曾经完成Task,半途而废了,是吗?几年前,我从一个传授那边进修的进程:我们先写一段代码,当我们进修到更多的工具时, 让我们回过火来运用更好的方法重构那段代码。让我们继续在代码重构中行进。

最初一步是回到终点,自我反思:怎么更自负地运用其他模块,怎么更好地测试代码,怎么取得更高的掩盖率,和如何使你和你的团队提高。

下次缭绕莫比乌斯(mobius strip)软件开发再会。

本文中的一切译文仅用于进修和交换目标,转载请务必注明文章译者、出处、和本文链接。 2KB翻译任务按照 CC 协议,假如我们的任务有进犯到您的权益,请实时联络我们。


2KB项目(www.2kb.com,源码交易平台),提供担保交易、源码交易、虚拟商品、在家创业、在线创业、任务交易、网站设计、软件设计、网络兼职、站长交易、域名交易、链接买卖、网站交易、广告买卖、站长培训、建站美工等服务

  • 全部评论(0)
资讯详情页最新发布上方横幅
最新发布的资讯信息
【计算机/互联网|】Nginx出现502错误(2020-01-20 21:02)
【计算机/互联网|】网站运营全智能软手V0.1版发布(2020-01-20 12:16)
【计算机/互联网|】淘宝这是怎么了?(2020-01-19 19:15)
【行业动态|】谷歌关闭小米智能摄像头,因为窃听器显示了陌生人家中的照片(2020-01-15 09:42)
【行业动态|】据报道谷歌新闻终止了数字杂志,退还主动订阅(2020-01-15 09:39)
【行业动态|】康佳将OLED电视带到美国与LG和索尼竞争(2020-01-15 09:38)
【行业动态|】2020年最佳AV接收机(2020-01-15 09:35)
【行业动态|】2020年最佳流媒体设备:Roku,Apple TV,Firebar,Chromecast等(2020-01-15 09:31)
【行业动态|】CES 2020预览:更多的流媒体服务和订阅即将到来(2020-01-08 21:41)
【行业动态|】从埃隆·马斯克到杰夫·贝佐斯,这30位人物定义了2010年代(2020-01-01 15:14)
联系我们

Q Q: 7090832

电话:400-0011-990

邮箱:7090832@qq.com

时间:9:00-23:00

联系客服
商家入住 服务咨询 投拆建议 联系客服
0577-67068160
手机版

扫一扫进手机版
返回顶部