¿Qué es la política del mismo origen (SOP)?

La política del mismo origen es una función de seguridad del navegador que restringe un documento o script cargado por un origen para acceder o interactuar con documentos o scripts de otro origen. Un origen consta de protocolo, host y puerto. 

Por ejemplo, considere la siguiente URL:

https://geeksforgeeks.com

En el ejemplo anterior, «https://» es el protocolo, «geeksforgeeks.com» es el host y el puerto es «80». 

Nota: Por defecto, los sitios web usan el puerto 80.

La misma política de origen es necesaria porque cuando el navegador realiza una solicitud HTTP de un origen a otro origen, todos los datos asociados, es decir, cookies, tokens de autenticación, sesiones o cualquier dato relevante, se envían como parte de la solicitud. Si el otro origen es malicioso, podrá acceder a toda la información del usuario víctima.

Ejemplo: 

Si no existiera una Política del mismo origen y usted visita un sitio web malicioso, podría leer todos los mensajes de su cuenta de red social.

Se dice que dos orígenes son iguales cuando tienen el mismo protocolo, host y puerto.

Comparemos el origen «https://geeksforgeeks.com» con los orígenes en la tabla a continuación.

URL mismo origen?
https://geeksforgeeks.com/ejemplo1 Sí, mismo protocolo, host y puerto. Solo difiere la ruta de la URL.
https://geeksforgeeks.com/ejemplo/ejemplo.html  Sí, mismo protocolo, host y puerto. Solo difiere la ruta de la URL.
http://geeksforgeeks.com/ejemplo No, el protocolo es diferente.
https://practice.geeksforgeeks.com/ejemplo No, el anfitrión es diferente.
http://www.geeksforgeeks.com/ejemplo No, el host y el protocolo son diferentes.
https://geeksforgeeks.com:81/ejemplo No, el puerto es diferente

Nota: Internet Explorer permitirá «https://geeksforgeeks:81/example» porque IE no considera el número de puerto al aplicar la misma política de origen.

¿Cuándo la política del mismo origen impone restricciones?

La política del mismo origen es aplicada por el navegador, cuando se trata de dos orígenes diferentes.

  • La página no puede acceder al contenido de un iframe a menos que sea del mismo origen.
  • No se permiten XMLHttpRequests.
  • Las cookies de sesión de un sitio en particular no se pueden enviar a una página con un origen diferente.

Nota: En caso de cookies, el protocolo y el puerto no se comprueban. Solo se comprueba el host.

La política del mismo origen no restringe por completo la interacción entre dos orígenes. Los navegadores verifican si las interacciones entre los dos orígenes representan una amenaza o no, si no, permiten las interacciones.

Por lo general, se permite la carga de origen cruzado del recurso de la página. Puede incrustar una imagen con la etiqueta <image>, un script con la etiqueta <script> o un video con <video> de un sitio diferente, pero ningún código javascript podrá leer el contenido de estos elementos incrustados de origen cruzado.

¿Es suficiente la política del mismo origen?

La política del mismo origen impone cierta seguridad, pero no es suficiente para evitar todo tipo de ataques. Algunos de ellos son:

  • Ataque Cross Site Request Forgery (CSRF) que básicamente aprovecha diferentes orígenes. Esta es la razón por la que se deben usar tokens anti-CSRF además de la política del mismo origen.
  • Los ataques Cross Site Scripting (XSS) también pueden evitarse mediante la Política del mismo origen, pero para evitarlo, deberá restringir la carga de scripts de fuentes externas, lo que puede afectar la funcionalidad de las aplicaciones web.

Publicación traducida automáticamente

Artículo escrito por baddrink887 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *