JavaScript开发与安全

Javascript是一种高级的,动态类型化的解释型第六大流行编程语言。 它与用户DOM交互以执行各种功能。

自1995年问世以来,它已经发展了很多,现在通过PhoneGap等工具也用于跨平台开发,并通过NodeJS用于服务器端开发。

曾经有过Java安全漏洞的案例
自发布以来。 甚至Facebook都不是全部
漏洞。 马克·扎克伯格(Mark Zuckerberg)自己的Facebook帐户被黑,
他事先被告知Facebook存在安全风险。 逃走
针对这些安全漏洞,专家建议采取一些措施,
应予以实施以控制风险。 JavaScript专家感觉
这些漏洞是Javascript开发人员的结果
没有采用这些措施来控制那些风险。

需要注意的重要一件事是“任何我们可以得到输入的东西
到我们的应用程序并返回到后端是一个潜在的黑客因素或
脆弱性因素”。 其中包括查询参数,URL路径,
PUT / POST参数,Cookie,引荐来源标头,文件上传,电子邮件,
表单字段,Web套接字,浏览器的本地/会话存储等。

跨站脚本(XSS)
这是应用程序中最常见的漏洞之一。 XSS发生在
运行任何恶意的,不需要的或未经授权的Javascript代码段
在受害者的浏览器中或应用程序旁边。 这可能导致
数据被盗或用户被重定向或破坏
剪贴板数据或浏览器的历史记录。 无法过滤
通过Web应用程序防火墙。

当应用程序使用数据参数并将其传递给浏览器而未正确验证数据时,就会发生XSS。

预防

验证并清除所有基于用户的输入。
对输出进行编码以包含特定内容,尤其是在输出包含HTML标记的情况下。
设置适当的标题,例如严格的传输安全性,X-frame-options,
X-XSS保护,X-Content-Type-Options,Content-Security-Policy。

跨站请求伪造(CSRF)

这被称为“ see-surf”。 它允许受害者的浏览器制作一个
伪造的HTTP请求。 它迫使最终用户不必要地执行
当前对其进行身份验证的Web应用程序上的操作。
因此,当用户认为他只是在浏览自己的仪表板时,
恶意代码段会在后台加载。 例如,可以
在页面上以及用户浏览时成为Facebook的隐藏框架
页面,并在浏览器中登录到他的Facebook帐户,
后台代码可以使他代表他发布内容。

因此,这给予了黑客许可,以迫使用户的浏览器在不知道的情况下生成请求。

预防

在请求中包含随机的,不可预测的令牌。
将令牌添加到可以改变应用程序状态的请求中。
合并验证码。 请求的来源必须经过验证。

会话管理

黑客通常使用身份验证机制中的漏洞/冒充来冒充其他用户。

预防

不要在URL中公开会话令牌。
会话令牌应该有一个超时。
每次成功登录后,重新创建会话令牌。
使用HTTPS优先发送令牌。
使用适当的权限。
使用一些众所周知的身份验证机制。

Java严格模式

尽可能使用严​​格模式。
这样可以消除无声错误,并始终显示它们。
它有助于Javascript引擎对代码进行优化。

敏感数据暴露

使用SSL / TLS(HTTPS)。
对静态和传输中的所有敏感数据进行加密。
不要存储不必要的数据。
在存储敏感数据的表单上禁用缓存。

密码管理

使用强大的算法对密码进行哈希处理。
加强密码。
使用2因子身份验证。
使用Google身份验证器。

处理饼干

对于Cookie,请设置以下标志:
安全:仅用于HTTPS。
不允许通过Javascript访问cookie。


强制进行适当的Cookie范围界定。
仅由某些域访问。
仅在某些路径上可访问。
在规定的时间后过期。

本文包含一些摘录自标题为“演讲”的部分
Jared Smith的“如何编写安全的JavaScript应用程序”活动
“ 2016年11月”




From: https://hackernoon.com/javascript-development-and-security-va2bm2gbi

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值