私はgrails 2.2.1で作業します。私は私のプロジェクトに実装するためにCSRFに関する多くのリンクを行ってきました。グレイルでの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')
}
}
}
}
このコードは期待どおりに機能しません。私が何かをクリックすると、UIのページが空白になります。 最後に、「Origin」がnullになることを確認しました。 誰でもこの問題を教えてもらえますか?
私が正しく読めば質問は、Grailsの2.2程度でした。 – GLaDOS