问题标签 [websecurity]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
url-rewriting - 在哪里“安全地”存储会话 ID?
2017 年 OWASP 前 10 名:
会话 ID 不应在 URL 中,应安全存储
但是“安全存储”是什么意思?
PS:如果使用 http ,我个人认为 URL 重写没有任何问题。
api - 黑客可以在发出 API 请求时更改其域吗?
如果我在公共互联网上发布了一个 API,但它仅供我的应用程序使用,我可以创建一个接受域的白名单,这样其他域就不能使用它。
但我总是想知道,当向我的 API 发出 HTTP 请求时,黑客不能编辑他们的“来自域”吗?他们不能模仿其他域来欺骗我的 API 以使他们信任他们吗?
javascript - 有没有一种在 Angular 7 中嵌入 iframe 的安全方法?
设置 iframe url 的唯一方法是通过this.domsanitizer.bypassSecurityTrustResourceUrl(url)
. 但是像 veracode 这样的静态代码分析工具将此作为一个高漏洞问题提出来,我认为这是正确的。但是有没有办法像白名单一样安全地信任 url?
javascript - 在“代理”后面发送请求时代码不起作用
我正在向网站发送请求(我正在使用请求模块),它会返回数据作为响应。一切正常,直到我在代理后面发送请求(即使代理没有在网站上被禁止)。
我的问题是一样的 如何在使用代理时停止NodeJS“请求”模块更改请求
我尝试了上述帖子中的所有解决方案,但没有任何帮助
我在请求中使用的标头
javascript - 添加嵌入式谷歌地图时console.log中的警告
我想在我的网络应用程序中添加谷歌地图(嵌入式)地图。我正在构建一个 Angular 8 并使用内置服务器,但仍在 console.log 中显示警告
我在 ngOnInit 方法的代码中所做的,我已经添加了这个
上面的代码我使用了名为 ngx-cookie-service 的 npm 包。也因为我自己参考了这个网站
我不确定我做对了还是错了。我所做的只是使用我所在位置的谷歌地图中的“复制链接”完全复制。如何解决这个问题。
javascript - 如何防止脚本注入攻击
介绍
这个话题一直是 StackOverflow 和许多其他技术论坛上许多问题和答案的祸根;但是,它们中的大多数都特定于确切的条件,甚至更糟:通过脚本注入预防的“整体”安全性dev-tools-console
,dev-tools-elements
或者甚至address-bar
据说是“不可能”保护的。这个问题是为了解决这些问题,并作为当前和历史参考作为技术改进 - 或发现新的/更好的方法来解决浏览器安全问题 - 特别是与script-injection
攻击相关。
关注点
有很多方法可以“即时”提取或操纵信息;具体来说,很容易拦截从输入中收集的信息 - 以传输到服务器 - 无论 SSL/TLS 是什么。
拦截示例看看这里
不管它多么“粗糙”,人们可以很容易地使用制作模板的原理,只需复制+粘贴到eval()
浏览器控制台中即可执行各种令人讨厌的事情,例如:
console.log()
通过XHR在传输中截获的信息- 操作
POST
数据,更改用户引用,例如UUIDs
- 通过检查 JS 代码将目标服务器替代
GET
(和发布)请求信息提供给中继(或获取)信息,cookies
以及headers
这种攻击在未经训练的人看来“似乎”微不足道,但当涉及到高度动态的界面时,这很快就会变成一场噩梦——等待被利用。
我们都知道“你不能信任前端”,服务器应该负责安全;但是 - 我们心爱的访客的隐私/安全呢?许多人在 JavaScript 中创建“一些快速应用程序”并且不知道(或关心)后端安全性。
保护前端和后端的安全将证明对普通攻击者来说是强大的,并且还减轻了服务器负载(在许多情况下)。
努力
谷歌和 Facebook 都实施了一些缓解这些问题的方法,而且它们奏效了;所以这不是“不可能的”,但是,它们非常特定于各自的平台,并且实现需要使用整个框架以及大量工作 - 仅涵盖基础知识。
不管这些保护机制中的一些看起来多么“丑陋”;目标是在一定程度上帮助(减轻/预防)安全问题,使攻击者难以应对。众所周知:“你无法阻止黑客,你只能阻止他们的努力”。
工具和要求
目标是拥有一组简单的工具(功能):
- 这些必须是普通的(香草)javascript
- 它们一起不应超过几行代码(最多 200 行)
- 他们必须是
immutable
,防止攻击者“重新捕获” - 这些不得与任何(流行的)JS 框架发生冲突,例如 React、Angular 等
- 不一定要“漂亮”,但至少可读,“单行”欢迎
- 跨浏览器兼容,至少达到很好的百分位数
angular - Springboot WebSecurityConfig 忽略过滤器
我的问题是,当我登录时,spring boot security 已经要求提供一个不记名令牌,而它还不存在。因此,过滤器不应使用特定请求执行,在我的情况下是 /authenticate
WebSecurityConfig.java
但是使用这种方法,过滤器总是在任何请求上执行,也不是意图的 /authenticate。
node.js - 如何使用 ReactJs 客户端和远程 NodeJs 服务器集群实现 CSRF 保护?
我在尝试在 ReactJs 客户端和远程 NodeJs 服务器集群(无服务器会话)之间实施 CSRF 保护时遇到问题。我在这里有一个超级简单的项目(https://github.com/KevinAtMagenic/Example-CSRF-NodeJs/),它将复制问题。克隆它,然后是“yarn i”和“yarn dev”,你就会和我一起在散兵坑里。一顿免费的午餐或啤酒,我永远感谢任何能够让这项工作发挥作用的人,或者至少为我指明了一个更好的方向。
谢谢
- 凯文
api - API 保护 - JWT vs HMAC 签名 vs OAuth
假设您正在设计一个新的 API。API 的使用者是一个定期在后台发送请求的移动应用程序,但您也期望其他使用者,例如 Web 应用程序或服务器。
现在让我们考虑两种方案:
在方案一中,您创建一个接受您的用户名和密码的登录端点,并作为响应发出一个短暂的 JWT。
在方案二中,API 的客户端使用 HMAC 签名对每个请求进行签名,就像 亚马逊保护他们的 API
你会如何比较两者?似乎第二种方案对 API 客户端的计算量更大,但在这两种方案中,这一切都归结为一个您必须保留在设备或服务器上的密钥/密码。它如何使方案二更安全?
那么你有第三个方案,即 OAuth2,但如果不涉及第三方,这是否有意义?
谢谢。
asp.net - 如何针对跨站点脚本清理查询字符串输入 - 反映 ASP .Net(Web 窗体)应用程序中的问题?
我正在开发一个具有一些跨站点脚本的遗留应用程序 -当我们从查询字符串中获取输入时反映了问题。Fortify 代码扫描 (WebInspect) 工具正在报告这些问题。
例如:
我有一个名为 ProgressDisplay.aspx 的页面,它将 reportPath 作为查询字符串参数。
在上面的代码中,reportPath 是一个查询字符串参数,其中传递了恶意负载,它在响应中显示警报。
上面的有效载荷alert(56645)
在渲染后变为。
像这样,有几个类似的问题被报告。是否有任何集中的方法可以通过使用任何 ASP .Net 库一次性解决所有问题,或者在配置中进行一些更改而不是修复每个问题,或者我必须一个一个地解决所有问题?
修复后,当插入恶意脚本时,页面不应返回 200 响应。我们必须返回一个错误请求作为响应。