可有人會向我解釋這行代碼?設計Rails的API
skip_before_filter :verify_authenticity_token, :if => Proc.new { |c| c.request.format == 'application/json' }
我應該使用它嗎?爲什麼,爲什麼不。謝謝。
可有人會向我解釋這行代碼?設計Rails的API
skip_before_filter :verify_authenticity_token, :if => Proc.new { |c| c.request.format == 'application/json' }
我應該使用它嗎?爲什麼,爲什麼不。謝謝。
的verify_authenticity_token是before_action(每一個控制器操作之前調用的方法,被稱爲的before_filter前導軌4)Rails使用從CSRF攻擊保護。 You can read more about how Rails does this here。
這行代碼的意思是:「如果這是那麼JSON請求跳過此控制器CSRF檢查」。
這對於需要提供給遠程站點不屬於同一域,所以也就無法通過CSRF檢查JSON API的有用。這是安全的,只要你確定the API is being authenticated properly。但是,如果你的控制器不會通過外部Web應用程序中使用(和你只是在做AJAX的東西在自己的網站),然後不關閉verify_authenticity_token檢查。
另請參閱http://stackoverflow.com/questions/23773730/rails-4-skipping-protect-from-forgery-for-api-actions –