Я создаю приложение на Rails, и у меня есть protect_from_forgery
в моем application.rb
. Я также создал RESTful API для мобильных приложений для связи с использованием данных JSON
. Я вижу некоторые сайты, которые утверждают, что для того, чтобы мобильное приложение взаимодействовало с приложением rails, они отключили protect_from_forgery
для запросов JSON.Rails protect_from_forgery с мобильными приложениями
Как это решить проблему CSRF? Может ли вредоносный сайт не запрашивать запрос JSON POST, который выполняет нежелательные изменения от имени пользователя?
Таким образом, чтобы решить эту проблему, я решил использовать пользовательские mime-type
или, возможно, special key
что только мобильное приложение будет использовать, а затем protect_from_forgery
выполнить следующие действия:
- Проверьте, если CSRF токен присутствует как
hidden div
(true для веб-приложения и включен по умолчанию). - Если нет, проверьте это
special key
илиmime-type
.
Есть ли в любом случае для достижения этой цели или аналогичные проблемы для решения этой проблемы?
Update
Оказывается, что я чрезмерно думал проблему. Rails является «волшебным» и каким-то образом обрабатывает запросы, поступающие из мобильного приложения, автоматически и соответствующим образом, не создавая исключения. Таким образом, по существу, нам не пришлось вносить какие-либо изменения.
Я не совсем понял, как Rails справляется с этим, хотя - педагогически говоря, это может быть интересно узнать для некоторых.
Как создаются запросы от мобильного приложения? – Dad