Devolver la firma AWS a través de HTTP

2

Estoy realizando la carga de varias partes en S3 directamente desde el navegador, es decir, sin pasar por mi servidor.

Mi código JS envía una solicitud a S3 (un POST), luego carga el archivo en fragmentos de 5 MB (un PUT para cada uno) y, finalmente, finaliza el archivo (un POST).

Eso funciona bien. Como puede adivinar, cada solicitud a S3 (apretón de manos, carga de partes y finalización) debe ser firmada. Por supuesto, es imposible generar la firma en JS, ya que expondría mi clave secreta de AWS.

Lo que estoy haciendo hasta ahora es lo siguiente: antes de cada solicitud a S3, envío una solicitud a mi propio back-end (a /sign?method=HTTPMethod&path=URLToSign ) que devuelve la cadena de la firma. De esta manera, todas las credenciales de AWS permanecen en el back-end, como debería ser.

Mi pregunta es la siguiente: ¿Es seguro?

Me doy cuenta de que cualquiera puede utilizar el punto final /sign para firmar cualquier cosa en mi cubeta S3. Puedo reducir los riesgos asegurándome de que la solicitud /sign sea un XHR cuyo referente sea mi propio dominio.

    
pregunta Emmanuel Turlay 06.03.2013 - 16:28
fuente

1 respuesta

1

Sí, el backend se puede utilizar en su caso para firmar cualquier cosa en su cubo s3.

Puede bloquear la petición XMlhttp / cross del sitio para / firmar, pero por eso le está haciendo saber a otros que está usando un script de back-end. Para esto, debe tener en cuenta que se puede realizar un XSRF llamado como ataque de falsificación de solicitud entre sitios.

Específicamente, decir que este método no es tan seguro como compararlo con usar backend para enviar datos a aws. También hay muchas formas en las que se ha conectado en línea para realizar una solicitud xhr entre sitios.

Para la prevención de xsrf es posible que tengas que buscar aquí también

enlace enlace

Pero no lo haré a tu manera. Aunque es fácil y buena, pero tiene una vulnerabilidad que puede ser explotada.

    
respondido por el Abhishek 08.03.2013 - 22:34
fuente

Lea otras preguntas en las etiquetas