2010-09-10 14 views
6

Tengo dos aplicaciones que necesitan comunicarse entre sí a través de HTTP. Una es una aplicación PHP y la otra es mi aplicación principal, la aplicación Rails. Necesito la aplicación PHP para hablar con la aplicación Rails al enviar datos a ella, pero cuando lo hago, recibo el error Token de autenticidad no válido. ¿Hay alguna manera alrededor de esto? ¿O cómo solo crearía mi propio token para pasar el POST para que mi aplicación Rails se autentique?Rails 3 protect_from_forgery problems

Respuesta

15

Desde el documentation for ActionController::RequestForgeryProtection::ClassMethods

Puede omitir el requisito token de autenticación, ya sea mediante la especificación y: a excepción o forzando el filtro antes de que hay que saltar .... Ejemplo de la documentación ...

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

¿No sería mejor buscar el token de autenticidad en una solicitud de obtención separada y luego usarlo para publicar el formulario usando PHP? ¿Deshabilitar el token no es un problema de seguridad? – Alex

+0

Acepto, no debe deshabilitar la protección para Índice y POST. Cualquiera que intente hacer esto debe seguir la sugerencia de Alex o al menos usar una acción diferente y colocar algún otro tipo de seguridad, como aceptar solicitudes provenientes solo de una IP conocida, utilizando request.remote_ip para descartar direcciones IP no deseadas. – martincho