作者都是各自领域经过审查的专家,并撰写他们有经验的主题. 我们所有的内容都经过同行评审,并由同一领域的Toptal专家验证.
阿明·沙·吉拉尼
验证专家 在工程
8 Years 的经验

Amin是一名开发者和企业家,他喜欢简洁的文字, 为CI/CD编写的测试驱动Ruby和ES6代码.

阅读更多

专业知识

Share

每当我告诉我的朋友我为一个从未谋面的客户远程工作时, 他们问我:你远程工作安全吗? 我的回答是一个响亮的“是的……但是,这取决于你如何创造你的。 远程工作人员安全策略.”

我住在巴基斯坦,在那里我编写的代码对地球另一端的客户有价值. 我的客户从来没跟我握过手,也没见过我工作的地方. 然而,我需要确保客户的秘密和代码得到保护. 在一个你的团队成员不熟悉你的面孔或声音的世界里, 如何防止安全漏洞? 答案是: 非常小心.

远程工作人员安全策略头

不久前, 我们相信,为了保证我们应用程序的性能和安全性, 我们需要在我们的私人数据中心运行它们. Then the cloud 是在, 我们接受了在可扩展的平台上运行应用程序的成本和性能优势, 按需平台,而无需在房间内维护一系列服务器.

请允许我告诉你一个众所周知的秘密:

没有云.
这只是别人的电脑.

现在,像Uber这样的公司1 和条纹2 在云提供商的服务器上存储和处理实时客户位置信息、信用卡和付款, 同时遵守严格的安全标准,如pci遵从性. 为了做到这一点,他们采取了严格的政策,以确保生产数据的安全.

如果公司能够保证他们的整个生产环境保持安全,即使在他们的私有数据中心之外运行, 我们当然可以使用远程开发团队来确保开发的安全性. 毕竟,整个公司都可以完全远程运行. Toptal是一家远程公司 我们正在招聘.

何谓“保安”及我如何“保安”

在本文中,当我谈到“安全性”时,我的意思是 信息安全.

“信息安全”一词是指保护信息和信息系统免受未经授权的访问, use, 信息披露, 中断, 修改, 或破坏. – 44 U.S. 法典§3542

There is 世上没有十全十美的安全措施,但“安全”意味着你已经采取了 合理的措施 执行 信息安全.

具体地说, 当你说“我的工作环境很安全。,“你的意思是说你已经采取了合理的措施来保护数据, code, 或其他机密信息, 并确保其完整性. 您还采取措施确保访问敏感信息系统的权限不会被您自己使用, 或者是未经授权的个人, 以一种对拥有这些信息的组织的目标有害的方式, 这些系统.

远程团队的攻击面确实比集中式团队大得多. 不像一个集中的团队,你可以把机密信息锁在后面 防火墙 以及公司的工作站, 作为远程工作者, 你被鼓励,甚至被要求, 自带设备(BYOD). 更重要的是, 因为你们大部分的交流都是在网上进行的, 你更容易受到社会工程的影响 身份盗窃. 然而,有了正确的策略集,您当然可以将违规的风险降至最低.

安全没有灵丹妙药. Often, 在安全性和便利性之间需要权衡取舍, 你可以决定你的安全措施要走多远,但要记住, 你的团队的安全取决于最弱的成员. 让我们来看看一些常见的安全攻击, 防御策略, 最后讨论一个示例远程安全工作者策略.

三种最常见的对抗性攻击类型

如果你不知道你将要面对的是什么,你就没有准备好. 对手可以在攻击中使用许多策略,但大多数可以分为三类. 虽然这个列表并不详尽, 以下是恶意黑客可能使用的三种常见攻击媒介:

  • 社会工程
  • Phishing
  • 恶意软件感染

对远程工作人员安全策略的威胁

社会工程

也被认为是人类黑客, social engineering is the practice of manipulating people to act in a manner that is not in their best interest; this may include divulging confidential information.

社会工程攻击要么试图利用你的同情心,试图让你绕过良好的实践, 或者制造一种紧迫感,让他们担心如果你不遵守就会对你采取负面行动,从而让你绕过最佳做法.

社会工程的例子包括:

Phishing

网络钓鱼是窃取您凭证的最常见方法. 想象一下,一个看起来像Facebook的网站,当你登录时,以为它是真实的. 网络钓鱼是指攻击者创建一个看起来合法但实际上不合法的网站.

你能认出假脸书吗? 提示:它是不在Facebook上的那个.com.

有时黑客可以毒害你的互联网,并将他们的网站注入Facebook域名, 这就是所谓的中路进攻, 不过别担心, 你的浏览器会警告你这些.

鱼叉式网络钓鱼是另一种形式的网络钓鱼,其中网络钓鱼页面可能是为您或您的组织定制的. 这让你更有可能上当受骗,尤其是当它与社会工程结合在一起时.

我给你讲个故事:当我还在上学的时候, 最近了解到网络钓鱼的人创建了一个假的Facebook网站,并将计算机实验室的主页更改为他创建的. 接下来他知道的是,这个人有300个Facebook账户密码. 这次攻击是专门针对我的学校,结果证明是一次成功的鱼叉式网络钓鱼攻击.

想想看,只要有人懒得抬头看一下地址栏,所有这些密码就会保持安全.

恶意软件感染

现在有上百种不同类型的恶意软件. 有些是无害的,或者只是令人讨厌,但有些可能非常危险. 需要注意的最重要的恶意软件类型有:

  • 间谍软件:默默地安装和记录您的键盘,屏幕,音频和视频.
  • 远程管理工具(rat):允许完全控制您的计算机.
  • 勒索软件:加密你所有的重要文件,并让你支付解密密钥.

故意让你在电脑上安装自定义恶意软件, 攻击者通常使用社会工程:

  • Attacker 工厂“丢失”的USB驱动器 在公司停车场附近收集员工登录凭证.
  • 一个人把咖啡洒在简历上,要求前台打印一份文件,因为他要参加一个面试, 从而导致公司计算机被USB中的恶意有效载荷感染. (例子 人类黑客的艺术).

你现在需要的七种网络防御策略

我们已经讨论了最常见的对抗性攻击方法,但我们如何保持安全?

战略不. 1:妥善的密码管理

我讨厌密码. 好了,我说出来了. 我坚信用户名和密码组合是目前存在的最弱的用户认证形式. 密码只不过是由现存最糟糕的伪随机数生成器——人类大脑——生成的一串短字符.

我需要一个秘密词? 我的中间名和出生年份呢?肯定没人能猜出来! ——每一个人

更糟糕的是,为了方便,人们倾向于重复使用密码. 这使得某些人可以在银行登录和家庭WiFi上使用相同的密码, 同时让密码以他们最喜欢的乐队的名字结尾. 的恐怖!

多年前,我决心做以下事情:

  1. 使用密码管理器
  2. 使用强密码短语代替密码

使用密码管理器

当我说在安全性和便利性之间存在权衡时,它并不适用于这里. 要么你是安全的,使用密码管理器,要么你不是. 没有中间地带. 为确保良好的密码安全性,您必须使用密码管理器. 我将解释.

  1. 你所有的密码都是唯一的吗?
  2. 如果我发现了你的一些密码,你剩下的密码会安全吗?
  3. 你所有的密码都使用了至少32位的熵吗?
  4. 您的密码是否仅以加密形式存储?
  5. 你是否完全记得你注册时使用的每一个密码?
  6. 你确定密码泄露是在 这个网站?

如果你对上面任何一个问题的回答都是否定的,那么你就需要一个密码管理器了. 一个好的密码管理器会随机为你生成密码,并安全地存储它们. 不管你用什么密码管理器,只要你用一个就行!

I use LastPass 因为我喜欢他们在事件报告上的透明, 能够与朋友共享我的证书,并在我想要的时候撤销共享, 我喜欢他们免费计划中的移动同步功能.

我已经使用LastPass很多年了, 他们的安全挑战告诉我,我是他们安全意识最高的1%的用户之一.

强密码短语代替密码

tl;dr: Use this 生成一个密码短语. 12个词就足够了.

这可能听起来违反直觉,因为我在上面要求您使用密码管理器, 但在某些情况下,密码是不可避免的:您需要为密码管理器设置一个强大的主密码, 或者登录你的电脑. 在这些情况下,请使用安全且易于记忆的高熵密码短语.

说到熵,我们来讨论一下它. 我所说的“熵”是什么?

熵是在一定意义上衡量的统计参数, 语言文本的每个字母平均产生多少信息. 如果以最有效的方式将语言翻译成二进制数(0或1), 熵H是原始语言中每个字母所需的二进制位数的平均值. ——克劳德·香农

如果这句话很难理解,也没关系. 基本上, 密码的熵, 从一组中随机选择的, 集合中元素的总数是以2为底表示的吗. 例如:如果您的密码长度为4个字符, 只能包含小写字母, 随机生成密码的熵将是19位,因为:

  1. 小写字母中有26个元素
  2. 由这些字母组成的一个4个字符的字符串是 26^4 = 456,976
  3. 456,976以2为底表示是 Log (456,976) / Log (2) = 19位(四舍五入到最接近的位)

高熵密码的问题在于它们最终很难被记住,比如 c05f $ KVB # * 6 y. 为了让它们更容易被记住,如果我们不使用单个字母,而是使用整个单词呢? 用了一本有上千个单词的字典? 突然间我们的字母表变成了一千个元素那么长, 我们可以在7个单词中获得与11个字符相同的熵.

现在的不同之处在于,不再使用通行证word我们使用通行证phrase它的长度要长得多.

下面的XKCD漫画最好地解释了这个概念:

密码vs密码短语

生成安全随机密码短语的最简单方法是 here.

战略不. 2:使用多因素身份验证(MFA)

双因素身份验证(2FA)或两步验证都是同一事物的名称. 这是一件需要慢慢习惯的事情, 但2FA的安全效益远远超过成本,并使我个人免于两次账户泄露!

MFA背后的想法很简单. 我们可以用三样东西来验证你的身份:

  1. 一些你知道的(秘密)
  2. 你有的东西(代币)
  3. 你是什么(你的生理)

使用两个比只使用一个更安全.

大多数网站通过要求密码来支持第一个身份验证因素, 但越来越多的服务也开始支持第二个因素. The third factor is usually left out by web services since it requires specialized hardware; like the fingerprint sensor on your phone.

如果你是一个团队的管理员, 考虑为用户创建一个强制策略来设置2FA. 这确保了密码泄露不会导致帐户泄露.

“something you have”有两种常用的表达方式:

  1. 你的手机
  2. U2F密钥

使用手机进行2FA

我想马上说:不要在2FA中使用SMS代码. 恶意的人劫持你的电话号码已经成为一种常见的做法. The story 几乎都是一样的:有人对运营商进行了社交工程,将你的电话号码转移到另一家运营商. 我知道至少有一个人是这次袭击的受害者.

相反,使用基于时间的一次性密码(TOTP),也称为“谷歌身份验证”方法. 但是,我建议不要使用Google Authenticator,而是使用 Authy 因为它会在云端加密和备份你的2FA令牌. 你可以恢复你的2FA令牌,即使你改变设备…事实上, 您可以在多个设备上使用相同的令牌. 非常方便.

使用U2F密钥进行2FA

这是最简单和最强大的2FA方法. 我有一个Yubikey Neo,可以和我的手机和电脑一起使用. 为了证明我的身份,我只需要插入我的硬件令牌并按下一个按钮. My token is unique and being a physical token; I can carry it on my keychain or in my wallet.

战略不. 3 .时刻保持警惕

不管你认为自己有多安全,适度的怀疑是一件好事. 警惕那些要求你做不寻常事情的人. 你是否收到过某人让你重置密码的短信? 等一下,和他们进行视频通话. 要求他们证明自己的身份. 没有人会因为你的谨慎而责备你.

如果他们真的想抓你,那就不是偏执狂. -哈罗德·芬奇,疑犯

他们真的是来抓你的. 有时候,恶意用户做他们所做的事情是没有理由的,只是有这样做的意愿.

我的一位朋友曾经收到一位老熟人发来的信息,问他是否愿意成为他在Facebook上的“信任联系人”. 我的朋友同意了,并被要求回复一个他们会在手机上收到的代码, 这就是我的朋友如何通过社交工程为她的Gmail帐户提供重置令牌. 如果我的朋友从一开始就保持警惕,她就不会丢失她的电子邮件.

战略不. 4:根据最小特权原则设计系统

最小特权原则要求在计算环境的特定抽象层中, 每个模块(例如进程), a user, 或者一个程序, (取决于主题)必须只能访问其合法目的所必需的信息和资源. ——维基百科

如果用户、应用程序或服务不需要某些特权,就不要给他们特权. 你可以从这个原理推导出许多规则, 但我将在下一节讨论安全策略时再讨论它们.

让我告诉你一个故事:我曾经设计过一个应用程序,它可以接受用户使用为他们生成的唯一地址进行比特币支付,然后将其转发到一个中央安全存储地址. 如果你不熟悉比特币的工作原理, 这里有一个简单的解释:你需要一个公钥来接收比特币(像一个账号),一个相应的私钥来使用它(像一个账户密码)。. 比特币的账号和密码是加密连接的,不能更改.

我有几个选择来设计这个系统,但我决定采取更长的路线. 我决定让用户付费, 应用程序不需要访问私钥. So, 而不是设计一个接收和转发比特币支付的大型系统, 我做了两个系统:

  1. 接收系统:接收来自用户的比特币,并托管在公共互联网上. 它只包含地址的公钥.
  2. 转发系统:这是一个完全独立和锁定的系统,其唯一的工作是监视比特币网络上的交易地址,并将其转发到安全地址. 它包含地址的公钥和私钥.

很久以后,在我停止维护这个应用程序之后,公共接收系统被攻破了. 我立即关闭了它, 但攻击者从未设法窃取比特币,因为公共系统根本没有包含任何私钥.

战略不. 5 .使用常识性最佳实践

有些做法不需要解释. 你可能知道它们很重要, 但我经常惊讶于有多少人(包括我自己)忘记按几个开关. 我把这张清单放在这里:

  1. 打开防火墙
  2. 加密磁盘
  3. 启用加密备份
  4. 使用SSH密钥
  5. 使用安全的互联网连接

打开防火墙

防火墙根据一组规则控制进出计算机的网络流量. 它通过明确询问您是否允许新程序访问您的网络而起作用,并且是您的第一道防线.

您的操作系统可能内置了防火墙. 确保它已打开.

加密磁盘

全磁盘加密是这种神奇的能力,使您的整个磁盘的内容无用,没有您的密码. 万一你的笔记本电脑丢失或被盗, 你可以放心,没有人能够访问你的数据. 启用这个功能就像打开一样简单 FileVault on a Mac.

现代手机也默认启用了全磁盘加密.

加密备份

硬件故障,这是不可避免的. 你的机器总有一天会出故障的, 否则病毒会感染你的电脑, 或者(不寒而栗)勒索病毒会控制你的电脑. 但作为一个务实的人,你可能已经有了一个备份流程设置,我敢肯定,不是吗?

但是,即使有了备份,您也必须保持警惕. 确保你的备份是加密的,这样即使它们丢失或被盗, 您可以放心,您已经采取了合理的措施来保护您所委托的数据的安全.

如果你用的是Mac电脑,Mac上的Time Machine应用程序会自动对备份进行加密.

使用SSH密钥

如果您从本文中学到了什么,那就是停止使用密码SSH到计算机. 密码很难分享,如果它们被泄露,你的整个机器就会受到损害. 相反,只需运行命令即可创建SSH密钥 ssh - keygen.

要登录到远程机器,只需复制本地的内容 ~/.ssh / id_rsa.pub to ~/.ssh / authorized_keys 在远程机器中. 您可能需要在远程机器上重新启动SSH服务,但仅此而已.

将整个团队的SSH密钥添加到远程机器上,这样就没有人需要再次输入密码了. 撤销团队成员的密钥就像从远程计算机中删除密钥一样简单.

使用安全的互联网连接

当你与某人共享互联网连接时,你共享的不仅仅是你的带宽. 这取决于网站的配置和你的互联网, 他们至少可以检测到你访问了哪些网站, 最坏的情况是读取你传送的所有信息, 包括密码, messages, 或电子邮件.

这很容易启用,也很容易搞砸. 采取合理的预防措施,以确保您的连接是私人的. 确保没有未经授权的人可以访问你的互联网连接.

使用WPA2密码保护您的个人WiFi, 如果你在当地的咖啡店(或任何公共WiFi)工作,假设你被监视并使用VPN代理.

我犹豫是否要使用基于订阅的vpn,特别是因为自己的vpn非常简单. Use this 单线VPN解决方案 托管你自己的.

战略不. 6 .小心对待秘密

秘密是不应该泄露的. 这就是为什么他们被称为 secrets. 尽管如此, 你有多少次因为通过Facebook Messenger将密码发送到PostgreSQL生产数据库而感到内疚? 确保你总是:

  • 加密传输中的秘密
  • 经常旋转它们

加密传输中的秘密

如果您必须通过聊天等渠道共享秘密,请确保它们是加密的. 作为练习,访问您经常使用的最老的聊天客户端. 它可能是Facebook的消息或Whatsapp. 不管它是什么,打开并在你的消息中搜索短语“密码”.

如果这些秘密被加密了, 任何可以访问您的消息的人都无法使用它们.

经常轮换秘密

一个秘密存在的时间越长,或者被分享的次数越多,它就越有可能被泄露. 在一段时间后轮换秘密和密码被认为是一种很好的做法.

战略不. 7:建立加密身份

这当然是一种先进的策略, 但我个人不明白为什么这不是一种普遍的做法. 想想看:你的同事认为你被出卖了. 他们如何把信息传递给真实的你? 如果有人从互联网上分享重要的漏洞信息, 他们如何安全地发送? 您如何确保员工在传输过程中安全地共享信息?

我最喜欢的例子是Coinbase keybase概要在那里,他们对员工的PGP密钥进行加密签名. 他们走得更远,付出了他们的 合规部门提供PGP密钥. 说真的,Coinbase做得很好!

For me, 就我个人而言, 如果有人有理由怀疑我的网络身份被泄露了, 只需让我使用我的服务器上可用的PGP密钥签名一条消息 keybase profile. 我是唯一能拿到这个PGP密钥的人, 我已经采取了合理的预防措施来确保这把钥匙的安全,即使我的其他身份被泄露.

如果对消息的真实性有疑问,请让我签名. 如果你需要给我发送一个秘密,用我的公钥加密.

实施清晰的远程工作者安全策略

安全策略是对系统安全的定义, 组织或其他实体. 对于一个组织来说, 它解决了对其成员行为的约束,以及通过门等机制对对手施加的约束, locks, 钥匙和墙. – 维基百科

安全策略是执行操作时必须遵循的强制性规则或协议. 上面的策略是有帮助的,但要使它们更容易遵循, 给你的团队一套简单易懂的规则. 当您的团队确切知道该做什么时,就很难搞砸安全性.

让我们讨论要实现的远程工作人员安全策略的示例.

要实现的策略 员工:

  • 保密协议和合同: 确保在没有适当法律基础的情况下,没有员工可以接触到任何机密资源.
  • 紧急联系方式: 如果远程团队成员失去响应,请记下员工的完整和紧急联系信息.
  • 只授予必要的特权: 如果您的团队成员不需要访问某些区域来执行其功能, 不要允许他们访问. 销售团队的成员不需要访问您的代码存储库.
  • 密码管理: 确保你的员工可以使用密码管理器
  • 强认证策略
    • 最小密码强度: 我个人讨厌密码和, 为我担任管理人员的组织工作, 我要求密码至少包含50个字母数字字符. 如果您使用的是密码管理器,那么遵循此策略就很简单了.
    • 强制密码重置: 确保员工的密码经常过期,以经常轮换机密.
    • 双因素身份验证在任何地方使用2FA
  • PGP keys
  • 加密硬盘
  • 加密备份

员工会离开,但他们不应该带走你的信息. 调整这些策略以保留 data 即使你的员工离开了公司:

  • 企业电子邮件账户: 给你的员工在你自己的域上的电子邮件帐户允许你禁用和审计他们的通信.
  • 即时通讯: 尽管电子邮件很好,但有时你的团队需要实时交流. 确保你的团队有一个集中的Slack或IRC频道. 这使您能够根据需要禁用或审计它们的通信.
  • 集中式代码存储库: 确保所有公司代码都存储在公司代码存储库中. 公司计划提供像GitHub这样的公共SaaS产品是可以的,除非你需要对所有员工代码进行细粒度控制. 在后一种情况下,考虑获取自己的GitLab实例.

保障你的 基础设施:

  • 保持系统更新: 安全漏洞每天都在被发现和修补, 确保应用这些修复是您的工作. 没有什么比发现漏洞是由几周前修补的漏洞造成的更糟糕的了.
  • 锁定生产和登台环境: 任何员工都不应该有权访问生产环境或登台环境. 有时他们只是 mess up.
  • 创建一个强大的CI/CD流程: 您总是希望部署“好的”代码,而直接的CI/CD过程总是确保这一点.
  • 保护受祝福的存储库: 如果您有一个自动化的CI/CD过程, 确保只有项目经理可以编辑您的存储库.
  • 定义评审过程: 为了确保没有“坏”代码被忽略,创建一个审查过程. 这可以简单到要求在合并之前至少有一个独立的“对我来说不错”(LGTM)注释.
  • SSH密钥: 在极少数情况下,应用程序需要提供SSH访问, 确保他们使用SSH密钥而不是密码.
  • 考虑放弃自带设备: 预算团队可能会认为BYOD是自无纸办公室以来最好的政策创新, 但如果你负担得起的话, 考虑为您的团队提供可以在其上实现严格安全策略的公司机器.
  • 加密备份: 你的数据很重要.

写作时的策略 code:

  • 代码中没有秘密: 由于版本控制的性质, 当添加到代码中时,删除数据可能非常困难, where 秘密钥匙很容易找到.
  • Bcrypt存储密码时: 在设计身份验证系统时,使用 bcrypt 对密码进行散列和加盐处理,而不是设计您的系统,或者(噗)以纯文本形式存储.
  • 过滤日志中的敏感信息: 无论是你的全球辣椒, 应用程序的会话签名密钥, 或者用户的登录尝试, 确保这些信息不会泄露到系统日志文件中,任何具有访问权限的人都可以读取它们.
  • 授予所需的最少特权: 如果您的应用程序只需要 READ 特权,不要授予它 WRITE 特权. 坚持最少特权原则.

制定应对计划

安全漏洞确实时有发生, 虽然在验尸过程中有足够的时间来学习, 重要的是,有一个明确的途径来保护所有的数字资产.

花点时间制定一个应急计划,以防万一发生安全漏洞. 考虑你在以下情况下的行动:

  • 你丢失了一个有敏感数据的设备.
  • 您的基础结构可能已被未经授权的一方访问.
  • 你观察到你的团队中有人的行为举止和他们自己很不一样.
  • 发现安全漏洞.

应对计划中需要包括的内容:

  • 勤奋的文档: 启用屏幕录制,为你的团队建立一个wiki来分享他们所遇到的一切.
  • 违反控制: 取决于违规的范围, 这可能就像禁用用户帐户一样简单, 使服务器脱机, 或者停止生产,联系用户.
  • 建立内部沟通: 创建一个专门的Slack频道,或者找到一种方法让任何人都可以报告他们遇到的情况.
  • 引入帮助: 通知所有受入侵影响的小组. 这可能也是联系当局的好时机.
  • 调查: 弄清楚什么地方被破坏了,破坏到什么程度,我们能做些什么来恢复正常运作.
  • 重新上线: 尽快创建、测试和发布修复以恢复正常操作. 您的用户依赖于您的服务来工作, 而此时你可以保证稳定, 安全服务, 重新上网.
  • 与你的用户交流: 不要让你的用户蒙在鼓里. 你能做的最糟糕的事情就是在没有向用户解释发生了什么的情况下停止服务. Establish a live update channel; this may be as simple as using Twitter to keep them informed. 在事件处理之后, 发表一份调查报告,说明发生了什么, 事情是怎么发生的?, 以及你们为防止未来发生类似的违规行为所做的工作.

发生安全事故. 重要的是你如何处理你的回应. 到目前为止,我最喜欢的回应之一是在2015年,当LastPass检测到时,他们会强制重置主密码 异常网络活动. 我一直是LastPass的长期用户,尽管他们 recent 在安全问题上,我喜欢他们把客户的需求放在第一位的方式.

重申一下:不存在十全十美的安全. 重要的是确保您已经做出了合理的努力来保证数据的安全.

这些安全实践将使您和您的远程团队更难以被黑客攻击.

如果你想读一个黑客逃亡的真实故事,我推荐 《欧博体育app下载》 凯文·米特尼克.

如果你想了解更多关于对方的想法,我建议你阅读:

  • 社会工程:人类黑客的艺术 Christopher Hadnagy著
  • 欺骗的艺术 凯文·米特尼克和威廉·L. Simon

我的罪过是好奇.

关于总博客的进一步阅读:

聘请Toptal这方面的专家.
Hire Now
阿明·沙·吉拉尼

阿明·沙·吉拉尼

验证专家 在工程
8 Years 的经验

拉合尔,旁遮普,巴基斯坦

2017年1月27日成为会员

作者简介

Amin是一名开发者和企业家,他喜欢简洁的文字, 为CI/CD编写的测试驱动Ruby和ES6代码.

阅读更多
作者都是各自领域经过审查的专家,并撰写他们有经验的主题. 我们所有的内容都经过同行评审,并由同一领域的Toptal专家验证.

专业知识

世界级的文章,每周发一次.

订阅意味着同意我们的 隐私政策

世界级的文章,每周发一次.

订阅意味着同意我们的 隐私政策

Toptal开发者

加入总冠军® 社区.