Я работаю на Граале 2.2.1. Я прошел через множество ссылок, касающихся CSRF для реализации в моем проекте.
Grails — есть ли рекомендуемый способ борьбы с CSRF-атаками в формах AJAX?
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')
}
}
}
}
Этот фрагмент кода не работает должным образом. Страница в пользовательском интерфейсе становится пустой, когда я когда-либо нажимаю на что-либо. В последний раз я проверял, что «Происхождение» имеет значение null. Может ли кто-нибудь помочь мне с этой проблемой?