在Angular SPA应用程序中阻止跨站点脚本和跨站点请求伪造的最佳实践?

时间:2018-06-13 12:31:03

标签: angular jwt csrf

您好我在Angular开发了SPA Web应用程序。我使用Web API作为后端,我使用Azure活动目录进行身份验证。这是SPA应用程序,因此所有HTML页面都将在客户端呈现,而不像MVC(视图在控制器中创建)。用户登录后,用户获取令牌,令牌将在每个请求中发送,如下所示。

protected getRequestHeaders(): { headers: HttpHeaders | { [header: string]: string | string[]; } } {
    let headers = new HttpHeaders({
        'Authorization': `Bearer ${this.appContextService.userToken}`,
        'Content-Type': 'application/json',
        'Accept': 'application/json',
        'Ocp-Apim-Subscription-Key': ` ${this.appContextService.subscriptionKey}`,
        'X-Frame-Options': 'Deny',
        'X-XSS-Protection': '1',
        'X-Content-Type-Options': 'nosniff',
        'cache-control':'max-age=3153600'
    });
    return { headers: headers };
}

现在我正在寻找预防XSS和CSRF攻击。根据{{​​3}},不需要实现CSRF,因为我们在每个请求中发送令牌。有人可以帮助我理解,XSRF实际上是在基于令牌的身份验证系统中处理的,或者我是否每次需要发送一些随机令牌?在mvc中,每次在控制器中生成令牌并将其发送到html。提交请求时,它会比较两个令牌是否相同。在SPA架构中,处理XSRF的方法是什么,因为我在每个请求上发送令牌?这是否足够或需要特别小心?任何帮助,将不胜感激。谢谢。

0 个答案:

没有答案