小编Uri*_*iel的帖子

为什么Symfony EventDispatcher对事件使用任意名称而不是基于类的传播?

我想在我的应用程序中实现Observer Pattern(不是php,这就是为什么不使用Symfony的组件).

虽然组件没有使用类来传播或监听事件,但我发现它很奇怪,因为这样可以使用继承来监听整个事件树.

我看不到使用基于名称的听众的单一优势,你能帮我解决一下吗?

design-patterns event-dispatching symfony observer-pattern

7
推荐指数
1
解决办法
686
查看次数

为什么 auth0 建议不要在 localStorage 中存储令牌?

Auth0 提供了大量资源列表,描述了身份验证的最佳实践。其中有一连串建议不要localStorage用作存储 (JWT) 令牌的手段。

我发现这些点有几个问题:

  • 强烈假设 JWT 令牌是攻击者不得访问的敏感信息(通过 XSS)
    • 从我的角度来看,访问令牌本身并没有扩大攻击范围。如果攻击者可以控制受害者的浏览器,他们可以使用令牌从受影响的浏览器本身执行调用。
    • 访问令牌通常具有相当短的到期时间,并且它们可以被浏览器固定,从而减少在 XSS 上下文之外使用它们的机会。
  • Auth0 建议使用auth0.getTokenSilently()他们的 SDK 来获取令牌,但据我所知,攻击者没有任何理由不能自己调用​​这个方法(即注入另一个 sdk 脚本,使用现有的客户端密钥,并且只是调用getToken 从那里),从而以几乎相同的方式获取令牌,就好像它存储在localStorage
  • 我知道 XSS 无法访问令牌的唯一方法基本上是使用 httpOnly cookie,但这本身会创建新的向量 (CSRF),并且仍然无法阻止攻击者从受影响的浏览器中调用 api。

所以我完全同意 OWASP 的建议,不要将敏感数据localStorage存储在 . 但这只是因为这些东西会允许攻击者扩大攻击范围(访问银行帐户,尝试在其他应用程序中重复使用用户的密码等)。但我很难看出 accessTokens 是如何受此影响的。

jwt single-page-application auth0

5
推荐指数
1
解决办法
1045
查看次数