您好我在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的方法是什么,因为我在每个请求上发送令牌?这是否足够或需要特别小心?任何帮助,将不胜感激。谢谢。