2010-09-10 2 views
6

У меня есть два приложения, которым нужно общаться друг с другом по HTTP. Один из них - приложение PHP, а другое - мое основное приложение - приложение Rails. Мне нужно приложение PHP, чтобы поговорить с Rails-приложением, отправив ему POST-данные, но когда я это сделаю, я получаю ошибку Notual Authenticity Token. Во всяком случае, вокруг? Или как я могу создать свой собственный токен для прохождения по почте, чтобы мое приложение Rails аутентифицировалось?Rails 3 protect_from_forgery проблемы

ответ

15

От documentation for ActionController::RequestForgeryProtection::ClassMethods

Вы можете пропустить требование аутентификации маркера либо путем указания и: кроме или вынудив перед фильтром, который следует пропустить .... Пример из документации ...

class FooController < ApplicationController 
    protect_from_forgery :except => :index 

    # you can disable csrf protection on controller-by-controller basis: 
    skip_before_filter :verify_authenticity_token 
end 
+1

не было бы лучше получить токен аутентификации отдельным запросом на получение, а затем использовать его для публикации формы с помощью PHP? Отключает ли токен, а не проблему безопасности? – Alex

+0

Согласен, вам не следует отключать защиту для индекса и POST. Любой, кто пытается это сделать, должен следовать предложению Алекса или, по крайней мере, использовать другое действие и размещать какую-то другую защиту, например, принимать запросы, поступающие только с известного IP-адреса, используя request.remote_ip для отказа от нежелательных IP-адресов. – martincho

Смежные вопросы