当前位置: 首页 > 知识库问答 >
问题:

Angular如何处理XSS或CSRF?

汪文光
2023-03-14

Angular(2)如何处理XSS和CSRF。它能处理这些攻击吗?如果是这样,我需要做什么才能使用这种保护?如果没有,我是否必须在服务器中处理所有这些攻击,或者以某种方式在前端使用TypeScript?

我读到过你必须使用“with凭据:true”,但我不太确定将这段代码放在哪里,或者它是否是我正在寻找的。

https://angular.io/的网页中,我没有找到任何关于这个的东西(或者我只是错过了)。

共有3个答案

施永宁
2023-03-14

以下是使用SpringBoot时如何在后端/服务器端实现中处理CSRF的简要指南

CSRF中的令牌可以与HttpSession或cookie相关联

要像饼干一样处理,我们可以通过

.csrfTokenRepository(new CookieCsrfTokenRepository())

要作为HttpSession处理,我们可以通过

.csrfTokenRepository(new HttpSessionCsrfTokenRepository())   

甚至我们也可以通过嵌入CsrfTokenRepository来拥有一个自定义的csrf令牌存储库,以防我们需要跳过特定的url等

当重写WebSecurity配置适配器的配置方法时,可以使用上述所有方法

司马渝
2023-03-14

对于Angular中提到的服务器端,您可以使用Express处理的CSRF:

app.use(express.csrf())
app.use(function (req, res, next) {
  res.cookie('XSRF-TOKEN', req.session._csrf);
  res.locals.csrftoken = req.session._csrf;
  next();
})

不确定在新的HttpClientXsrfModule中是否仍然需要它。在app.module的客户端只添加以下内容可能就足够了(但需要确认):

HttpClientXsrfModule.withOptions({
  cookieName: 'XSRF-TOKEN',
  headerName: 'X-XSRF-TOKEN'
})
宗政卓
2023-03-14

Angular2提供内置、默认启用*、抗XSS和CSRF/XSRF保护。

DomSaniizationService负责删除危险位以防止XSS攻击。

CookieXSRFStrategy类(在XHRConnection类中)负责防止CSRF/XSRF攻击。

*请注意,客户端默认启用CSRF/XSRF保护,但仅当后端在用户进行身份验证时将名为XSRF-TOKEN的cookie设置为随机值时才有效。有关Cookie到Header令牌模式的更多信息,请阅读。

更新:官方Angular2安全文件:https://angular.io/docs/ts/latest/guide/security.html(感谢Martin Probst的编辑建议!)。

 类似资料:
  • 问题内容: 我正在使用angular-ui-router 从服务器获取数据,然后再进入一种状态。有时,对服务器的请求失败,我需要通知用户有关失败的信息。如果我从控制器呼叫服务器,则可以在呼叫失败的情况下在其中放置并呼叫通知服务。我将呼叫发送到服务器是因为我希望子孙状态在服务器启动之前等待服务器的结果。 万一对服务器的调用失败,在哪里可以捕获错误?(我已经阅读了文档,但仍然不确定如何使用。此外,我正

  • 问题内容: 我有2 ng-包括HTML。考虑服务器中是否不存在ng-include src之一。截至目前,它只会加载空白html,并且在浏览器控制台中会显示未找到http-404文件。 因此,在这种情况下,我只想将默认错误页面(服务器中存在)加载到该特定div中,即一半显示默认错误页面,另一部分显示通过nginclude加载的正确div。 我的逻辑是,使用HTTP拦截器拦截所有HTTP调用。无论何

  • 问题内容: Java中有没有办法处理收到的SIGTERM? 问题答案: 是的,您可以向注册一个关闭挂钩。

  • 问题内容: 我收到此错误消息: 当我将其复制到浏览器地址字段中时,它显示了正确的页面,这是有效的,但是我不能用以下方法对其进行解析: 我试过了:,但是 这不是我需要的网址 也不行 如何处理呢? 坦率 问题答案: 对字符使用编码,即。

  • 问题内容: 我是遵循Java教程的Java初学者。 我正在使用Java教程的 “ 数据流”页面中的简单Java程序,并在运行时一直显示。我想知道这是否正常,因为读者最终必须走到文件末尾。 编译正常,但输出为: 在Java教程的 “ 数据流页面”中,它显示: 注意,DataStreams通过捕获EOFException而不是测试无效的返回值来检测文件结束条件。DataInput方法的所有实现都使用E

  • 我正在为一个鼠标悬停工作,我想通过使用for loop单击每个链接来测试所有链接的工作状态。在我的程序中,迭代进行了一次,而下一次迭代却不工作了,并且显示“StaleElementReferenceException”..........如果需要,请修改代码....