with example angularjs javascript-framework

angularjs - example - Angular JS Verifica token CSRF en solicitud POST



angularjs http post example with parameters (3)

Estoy usando AngularJS con rieles. Tengo la siguiente solicitud que actualiza a los usuarios de forma masiva.

$http{ method: ''POST'', url: $scope.update_url, params: {selected_ids: userIds} }

Esto no puede ser una solicitud ''GET'' debido a restricciones en la longitud de la URL (http://support.microsoft.com/kb/208427)

Pero para la solicitud ''POST'', necesitamos tener un token de autenticidad CSRF en el encabezado.

¿Cómo podemos establecer el token CSRF en el encabezado de solicitud posterior?


Hace poco enfrenté el mismo problema y al agregarlo, la gema angular_rails_js resolvió. A mi entender, crea para cada controlador de rieles una cookie con los rieles CSRF-TOKEN que serán capturados (comportamiento predeterminado de $ http) por $ http angular.


Puede configurar los encabezados http como se explica en el servicio $http .

Puedes configurarlo globalmente:

$httpProvider.defaults.headers.post[''My-Header'']=''value'' (or) $http.defaults.headers.post[''My-Header'']=''value'';

o para una sola solicitud:

$http({ headers: { ''My-Header'': ''value'' } });

Aquí hay una cita importante de $http :

Protección de falsificación de solicitudes en sitios cruzados (XSRF) XSRF es una técnica mediante la cual un sitio no autorizado puede obtener datos privados de su usuario. Angular proporciona el siguiente mecanismo para contrarrestar XSRF. Al realizar solicitudes XHR, el servicio $ http lee un token de una cookie llamada XSRF-TOKEN y lo establece como el encabezado HTTP X-XSRF-TOKEN. Como solo JavaScript que se ejecuta en su dominio puede leer la cookie, su servidor puede estar seguro de que el XHR proviene de JavaScript que se ejecuta en su dominio.

Para aprovechar esto, su servidor necesita configurar un token en una cookie de sesión legible de JavaScript llamada XSRF-TOKEN en la primera solicitud HTTP GET. En solicitudes posteriores que no sean GET, el servidor puede verificar que la cookie coincida con el encabezado HTTP de X-XSRF-TOKEN y, por lo tanto, asegurarse de que solo JavaScript que se ejecuta en su dominio pueda haber leído el token. El token debe ser único para cada usuario y debe ser verificable por el servidor (para evitar que JavaScript cree sus propios tokens). Recomendamos que el token sea un resumen de la cookie de autenticación de su sitio con Salt para mayor seguridad.