因此,我们拥有一个通过JWT访问令牌保护的平台。要访问平台REST API,我们在Bearer Authorization标头中发送令牌;当获取静态内容(例如SPA的代码,CSS,字体,甚至在SPA之间跳转)时,我们会在Cookie中发送令牌,因为我们无法控制这些请求。到目前为止我们还可以...
有时我们在API中添加了Spring Security。这使我们更容易一些事情,但是SonarQube显示了有关禁用Spring Security的CSRF保护的警告(在配置我们的框架 pfff时,我们使用标头来传输JWT,我们的API不需要CSRF保护),但我们还是试图解决该警告。
调查中我们遇到了Cookies的let sessionManager = SessionManager()
override init() {
sessionManager.adapter = RequestAdapter.self as? RequestAdapter
sessionManager.retrier = OAuth2Handler()
}
func sendRequest(url: String,meth: HTTPMethod,parameters: [String: AnyObject]?, success: @escaping (String, Data) -> Void, failure: @escaping (Error) -> Void) {
self.asyncSerialWorker.enqueueWork { (done) in
self.sessionManager.request(url, method:meth).responseJSON { (responseObject) -> Void in
if responseObject.result.isSuccess {
print("Generic succsess")
let value = responseObject.result.value
let json = JSON(value!)
guard let result = responseObject.data else {return}
success(self.parser.parseMaiden(json: json), result)
}
if responseObject.result.isFailure {
let error : Error = responseObject.result.error!
print("login failed")
failure(error)
}
done()
}
}
}
属性,如果能解决所有问题,我们会感到困惑。
因此问题将是: SameSite
cookie的属性是否足以保护CRSF?
如果是这样,有没有办法让Spring Security / SonarQube可以抵御此类攻击?