我在Grails上工作2.2.1。我已經通過與CSRF的許多鏈接在我的項目中實施。在grails中防止CSRF攻擊?
Grails - Is there a recommended way of dealing with CSRF attacks in AJAX forms?
http://www.redtoad.ca/ataylor/2011/01/grails-cross-site-request-forgeries-csrf/
以上是幾個環節多,我經歷過的。
現在,回到我的問題。我不想使用「withform」或「.invalidtoken」。
我想使用已經存在的RequestHeaderFilter.groovy文件。我想使用請求頭來驗證原始頭。
請找到下面的代碼片段。
class ResponseHeaderFilters {
def filters = {
all(controller: '*', action: '*') {
before = {
def serverURL = grailsApplication.config.grails.serverURL ?: "http://localhost"
//this could/should be improved upon if serverURL is not set in one of our config files
//def OriginPrefix = serverURL.replace("http", "https")
def requestOrigin = request.getHeader('Origin')
if (request.getHeader('X-Requested-With')?.equals('XMLHttpRequest')) {
if (requestOrigin && requestOrigin == serverURL) {
response.setHeader('Expires', '-1')
response.setHeader('Cache-Control', 'no-cache')
response.addHeader('Cache-Control', 'no-store')
response.setHeader('X-UA-Compatible', 'IE=edge')
} else {
return false
}
}
}
}
addNoCachingHeaders(uri: '/**') {
after = {
response.setHeader('Expires', '-1')
response.addHeader('Cache-Control', 'no-cache')
response.addHeader('Cache-Control', 'no-store')
response.setHeader('X-UA-Compatible', 'IE=edge')
}
}
}
}
這段代碼不能按預期工作。當我點擊任何東西時,用戶界面中的頁面變爲空白。 最後我檢查了「Origin」是否爲空。 有人可以幫我解決這個問題嗎?
的問題是關於Grails的2.2,如果我正確讀取。 – GLaDOS