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
    评论
### 回答1: JavaScript 是一种流行的网页编程语言,它主要用于客户端网页开发,可以与用户交互、动态更新网页内容等。然而,由于 JavaScript 运行在客户端,它也存在一定的安全风险。 前端安全是指保护网站和用户免受前端攻击的过程。前端攻击是指通过欺骗用户或利用网站漏洞来获取用户敏感信息或窃取用户账户的行为。 为了保证前端安全,你需要注意以下几点: 1. 验证用户输入:不要相信用户的输入,应当对所有的输入进行验证,以防止恶意代码注入。 2. 加密敏感信息:对于用户的敏感信息(如密码),应当使用加密技术(如 HTTPS)来保护其安全。 3. 避免使用不安全的 API:JavaScript 中有一些 API(如 eval())本身就不安全,应当尽量避免使用这些 API。 4. 安装防火墙和安全插件:使用防火墙和安全插件可以帮助你保护网站免受攻击。 5. 定期更新系统和浏览器:保持系统和浏览器的最新版本可以帮助你保护网站免受 ### 回答2: JavaScript 前端安全是指在开发、部署和运行前端代码过程中,保护系统和用户的安全性。下面是几个关于JavaScript前端安全的主要方面: 1. 防止跨站脚本攻击(XSS):XSS是指攻击者向网页注入恶意脚本,然后在用户浏览器中执行这些代码。为了防止XSS攻击,开发者应该对输入数据进行严格的过滤和验证,并使用合适的编码来防止脚本注入。 2. 防止跨站请求伪造(CSRF):CSRF是指攻击者通过伪造用户请求,利用用户已登录的身份执行恶意操作。为了防止CSRF攻击,开发者应该使用CSRF令牌(token)来验证每个用户请求的合法性,并在关键操作中采取额外的保护措施。 3. 控制访问权限:前端需要确保不恰当的访问权限不能被滥用。开发者应该对服务端返回的数据进行合适的权限验证,并在客户端代码中实施访问控制策略,确保只有有权用户可以访问敏感信息或功能。 4. 使用安全的存储方式:前端代码可能需要处理用户输入或敏感信息。为了防止这些数据被窃取或篡改,开发者应该使用安全的存储方式,如加密存储或使用浏览器提供的安全存储API(如localStorage或sessionStorage)。 5. 防止代码注入:开发者应该确保在前端代码中避免注入攻击。这包括对用户输入进行严格的过滤和验证,并使用合适的编码方式来防止恶意代码注入。 综上所述,JavaScript前端安全开发者应该关注和采取措施的重要方面。通过合适的输入验证、访问控制、存储保护和代码注入预防,可以确保前端应用的安全性,最大限度地保护用户和系统的安全

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值