La prevención de envíos de formularios desde otra fuente es un problema resuelto, y usar un nonce es uno de los métodos recomendados.
Para algunos antecedentes, hay una forma de ataque contra aplicaciones web conocidas como falsificación de solicitudes entre sitios (XSRF) . Una falsificación de solicitud entre sitios, en términos simples, es cuando alguien carga JavaScript en una página maliciosa que hace publicaciones en otra página . Hay más que eso, y si no está familiarizado con CSRF, le recomiendo que lo lea. (Consulte el artículo de Jeff Atwood además de la OWASP Artículo al que he vinculado anteriormente.
La buena noticia es que muchos marcos de desarrollo web ya cuentan con mecanismos preconfigurados para evitar ataques XSRF, y lo hacen al garantizar que las publicaciones provengan de su propio dominio. Una vez más, usar un nonce es uno de esos métodos.
Desde la página OWASP en XSRF:
Controles relacionados
- Agregue un nonce por solicitud a la URL y todos los formularios además de la sesión estándar. Esto también se conoce como "claves de formulario". Muchos
Los marcos (ex, Drupal.org 4.7.4+) tienen o están empezando a
incluir este tipo de protección "incorporada" a cada forma para que el
El programador no necesita codificar esta protección manualmente.
- TBD: agregue un nonce por sesión a la URL y todos los formularios
En la parte inferior de la página de OWASP hay varias referencias que incluyen enlaces a mecanismos ya disponibles para resolver esto, incluido el Guardia CSRF de OWASP, que utiliza J2EE , .NET , y los filtros PHP que agregan un token de solicitud único a cada formulario y enlace en la respuesta HTML para brindar cobertura universal contra CSRF en toda su aplicación.