Estos contenidos se han traducido de forma automática para su comodidad, pero Huawei Cloud no garantiza la exactitud de estos. Para consultar los contenidos originales, acceda a la versión en inglés.
Actualización más reciente 2024-09-18 GMT+08:00

CORS

El uso compartido de recursos de origen cruzado (Cross-origin resource sharing, CORS) es un mecanismo estándar de navegador proporcionado por el World Wide Web Consortium (W3C). Define los métodos de interacción entre las aplicaciones web del lado del cliente en un origen y los recursos en otro. Para las solicitudes generales de páginas web, los scripts de sitios web y los contenidos de un origen no pueden interactuar con los de otro debido a las políticas del mismo origen (Same Origin Policies, SOP).

OBS soporta las reglas CORS y permite el acceso a los recursos en OBS a través de los orígenes. La configuración de CORS entra en vigor en dos minutos.

OBS es compatible con Alojamiento de sitio web estático. Los sitios web estáticos almacenados en OBS pueden responder a solicitudes de sitios web de otro origen solo cuando CORS está configurado para el bucket.

De forma predeterminada, el sistema OBS está configurado para admitir el acceso entre dominios mediante el nombre de dominio raíz. Esto permite el acceso desde todos los dominios, y es probable que los clientes sean atacados.

Para solucionar este problema, puede crear un archivo crossdomain.xml con reglas específicas en el bucket para cada cliente, y agregar Security.loadPolicyFile("https://bucket.obs.ap-southeast-1.myhuaweicloud.com/crossdomain.xml") en el código flash del archivo para evitar ataques. bucket.obs.ap-southeast-1.myhuaweicloud.com debe reemplazarse con el nombre de dominio de acceso real de su bucket.

Información de referencia

Cross-domain se refiere al acceso entre diferentes dominios.

Restringir el acceso entre dominios es una política de navegador por motivos de seguridad, es decir, la política del mismo origen. Debido a esta política JavaScript del mismo origen, las JavaScript bajo el dominio A no pueden operar objetos bajo el dominio B o C.

El mismo protocolo, nombre de dominio (o dirección IP) y puerto se consideran como el mismo dominio. Si los protocolos, nombres de dominio y puertos (si se especifican) de las dos páginas web son iguales, las dos páginas web tienen el mismo origen. Para entender mejor la política del mismo origen, puede ver el análisis sobre el acceso a la dirección de ejemplo https://support.huaweicloud.com/dir/test.html en Tabla 1.

Tabla 1 Análisis de ejemplos

URL

Resultado del acceso

Motivo

https://support.huaweicloud.com/dir/other.html

Exitoso

El mismo protocolo, nombre de dominio y puerto

https://support.huaweicloud.com/dir/inner/other.html

Exitoso

El mismo protocolo, nombre de dominio y puerto

http://support.huaweicloud.com/dir/test.html

Error

El mismo nombre de dominio y puerto, pero protocolos diferentes

https://support.huaweicloud.com:81/dir/test.html

Error

El mismo protocolo y nombre de dominio, pero puertos diferentes

https://help.huaweicloud.com/dir/test.html

Error

El mismo protocolo y puerto, pero nombres de dominio diferentes

Escenarios

Los escenarios de aplicación típicos de CORS son los siguientes:
  • Permite utilizar JavaScript y HTML5 para establecer aplicaciones web que pueden acceder directamente a recursos en OBS. No se requieren servidores proxy para la transferencia.
  • Habilita la función de arrastre de HTML5 para ser utilizado para subir archivos a OBS (con el progreso de la carga mostrado) o actualizar contenidos OBS usando aplicaciones web.
  • Las páginas web externas, las hojas de estilo y las aplicaciones HTML5 alojadas en diferentes orígenes pueden acceder a fuentes web o imágenes almacenadas en OBS, implementando el uso compartido de recursos.

Cómo usarlo

Puede configurar CORS mediante OBS Console, las API o los SDK.

Herramienta

Referencia

OBS Console

Configuración de CORS

SDK

OBS admite kits de desarrollo de software (SDK) en varios idiomas. Para obtener más información, consulte la guía para desarrolladores correspondiente en la página de Descripción de los SDK.

API

Configuración de CORS de bucket