verifycsrftoken unknown error php ajax security zend-framework csrf

php - unknown - meta csrf token



CSRF token para ajax (2)

Para aquellos que vienen a esta página, es posible obtener csrf trabajando con ajax.

En el controlador necesitarás regenerar el uso del hash al agregar esto justo antes del final de la acción:

$ form-> hash-> initCsrfToken ();

$ this-> view-> csrfhash = $ form-> hash-> getValue ();

En el archivo js que estás usando para hacer el ajax, vas a necesitar usar un selector para encontrar la instancia del hash a medida que se crea (para jquery:

$ (# hash) .replaceWith (csrfhash); En realidad, si usa replaceWith, va a reemplazar todo el elemento csrf oculto, incluidos el id y el nombre. Pero esa parte debería ser bastante fácil de hacer.

Tengo un problema con los formularios enviados con ajax. Hago mis formularios con Zend Framework. Algunas son formas reales, así que agrego un elemento Hash. Otros son para operaciones pequeñas (como upvote y downvote aquí) entonces los hago con enlaces.

Mi problema es que necesito usar ajax especialmente para las formas pequeñas (los enlaces). Veo muchas preguntas pero nada lo suficientemente amplio como para resolver el problema. ¿Hay una descripción detallada sobre cómo lograr que el token csrf funcione sin problemas cuando los formularios se envían a través de ajax? preferiblemente con Zend Framework, pero las respuestas generales de PHP también lo ayudarán.


No necesita un token CSRF . En su caso, utilice el método HTTP_X_REQUESTED_WITH (consulte, por ejemplo, aquí ).