1对1定制服务,PC端+手机端+小程序多端应用
最佳Node.js安全实践
2021年11月06日浏览:
数字产品安全是会议中的大象,每个人都在谈论它,但不是所有人都认真对待它。我们想向你揭示所有应用安全的重要性,这就是为什么我们在这里编写了一个最佳Node.js安全实践的简短清单。
为什么node . js ?js是逐渐占领市场份额的主要JavaScript运行时之一,在其核心,Node.js是安全的,然而,当你安装第三方包,你的方式配置,安装和部署可能需要一些额外的努力,以使一个网页应用程序更加安全和保护从在线攻击。
配置管理
安全HTTP标头
你需要在我们的网站上设置一些HTTP头信息。它们包括:
1)严格传输-安全强制安全(通过SSL/TLS的HTTP)连接到服务器
2)X-XSS-Protection使跨站点脚本(XSS)过滤器内置到最新的网页浏览器
3)x帧选项提供点击劫持保护
4)Content-Security-Policy可以防止大量的攻击,包括跨站点脚本和其他跨站点注入
5)X-Content-Type-Options帮助浏览器避免在声明的content-type之外嗅探响应。
许多有经验的网页开发人员推荐使用Herokuapp,它是检查您的网站是否有所有需要的标题的好工具。
客户端上的敏感数据
在开发前端应用程序时,一定要确保没有使敏感数据(如源代码中的秘密api)对所有人都可读。不幸的是,没有任何自动化工具可以帮助您检查它。这就是为什么许多应用程序开发人员建议使用非常传统的方法,比如使用拉请求和定期检查代码。
认证方式
强力保护
蛮力是列举所有可能的候选者并调查它们是否满足问题陈述的要求的过程。例如,如果是网页应用程序,那么登录端点可能是最佳选择。
为了保护您的网页应用程序免受这种攻击,您应该限制速率。我们的团队建议应用NPM Js的速率限制程序包。
当然,您可以将其转换为中间件并简单地将其插入到任何应用程序中。Koa和Express都有很棒的中间件。
您可以在给定的时间窗口中限制用户尝试登录的次数,它将帮助您消除突然暴力攻击的风险。您还可以利用Hydra检查服务在这些场景中的工作方式。
会话管理
不应低估cookie的安全使用,尤其是在必须跨无状态协议(如HTTP)保持状态的动态网页应用程序中。
cookie的标志
在这里你可以找到一个属性列表,应该为每个cookie以及它们的含义建立。
Secure—此属性告诉浏览器仅在请求通过HTTPS发送时才发送cookie
HttpOnly—此参数通常用于避免与跨站点脚本有关的攻击,因为它不提供通过Javascript访问cookie的机会。
cookie范围
域—此属性通常用于与请求链接的服务器域进行比较,接下来,如果域匹配,或者如果域是子域,则修改path参数。
Path—在域旁边,还可以指定与cookie相关的URL路径。如果路径与域匹配,则在请求中发送cookie。
Expires—此参数用于建立永久cookie,因为cookie直到设置日期过期的那一刻才过期。
您可以通过应用cookie包在Node.js中轻松生成此cookie。但是,它的级别相当低,这就是为什么您可能会使用包装器,例如cookie会话。
CSRF
缩写CSRF表示跨站点请求伪造,本质上,它是一种触发登录用户在网页应用程序中不需要的操作的攻击。这些威胁只针对改变状态的请求。它们的目标是数据泄漏,因为黑客没有机会看到伪造请求的响应。
为了避免类似攻击的风险,可以应用CSRF模块。还有一些用于不同框架的包装器。例如,有CSRF模块:用于CSRF保护的快速中间件。
错误处理
错误代码,堆栈跟踪
在各种bug场景中,应用程序可能会暴露底层基础设施的敏感细节,比如:X-Powered-By:Express。
通常,堆栈跟踪并不认为自己是漏洞,但它们经常会发现对黑客有吸引力的信息。作为产生错误的操作的结果提供调试信息通常没有帮助。最好总是记录它们,但不要向用户显示它们。
结论
我们的网页开发公司很乐意与您分享这个安全实践清单,它将帮助您避免许多错误,并且永远不会在Node.js开发中出错。有更多的可操作的战略和战术,我们只列出了其中的几个,但是,我们希望他们将有助于您和授权您创建更安全的应用程序。
友情链接: