¿El uso de Gravatar en una aplicación web con URL "privadas" es un problema de seguridad?

3

En nuestra aplicación, hay un tipo de característica de "compartir" que envía un correo electrónico a una dirección proporcionada por el usuario. Este correo electrónico contiene un enlace con un token de acceso secreto (como parte de la URL) que es válido por unos días. La página a la que apunta este enlace contiene información confidencial.

Ahora hay una solicitud de función para usar Gravatar en toda la aplicación para mostrar una imagen agradable del usuario, si el usuario tiene una cuenta de Gravatar. Ahora me temo que al incluir a Gravatar en la página confidencial mencionada anteriormente se comprometerá ese enlace.

¿Gravatar (o, más bien, Automattic) puede ver la referencia de donde proviene una solicitud a la imagen del usuario? En caso afirmativo, ¿hay alguna forma de utilizar Gravatar de manera que las URL privadas como se mencionó anteriormente no estén expuestas?

    
pregunta theDmi 18.11.2015 - 19:27
fuente

1 respuesta

7

Podrías enviar las solicitudes a Gravatar a través de tu aplicación, para que todas las solicitudes provengan del mismo lugar (o al menos no de tus propias URL privadas).

Algo como esto:

<img src="https://yourapp.example.com/users/1/avatar">

ConunpuntofinalentuaplicaciónquerecuperalaimagendeGravatarylavuelveamostrarenlanuevaURLanterior.

EnRails,podríahaceralgocomoestocomoprimerpaso:

require'open-uri'classUsersControllerdefavatargravatar_id=Digest::MD5::hexdigest(current_user.email).downcaseimage=open("http://gravatar.com/avatar/#{gravatar_id}.png", &:read)
    send_data image, type: 'image/png', disposition: 'inline'
  end
end

También puedo considerar codificarlo en base64 y / o almacenarlo temporalmente en la base de datos, o usarlo para un avatar "de inicio", y todavía permitir que los usuarios carguen otros personalizados.

    
respondido por el Unixmonkey 18.11.2015 - 21:02
fuente

Lea otras preguntas en las etiquetas