Tengo un punto final de api que devuelve un nuevo token de api en JSON al usuario si ha iniciado sesión en mi sitio web y solo se utilizan sus cookies de sesión para autenticarse.
Estoy tratando de escribir un fragmento de código que se carga automáticamente en un dominio diferente que envía una solicitud GET a ese punto final, usando las cookies de esa persona para ver si puedo buscar maliciosamente su nueva ficha api. Solo estoy comprobando si mi punto final es seguro o si es posible. Solo deseo que las solicitudes registradas desde el mismo dominio puedan llegar a ese punto final. No estoy seguro de si esto se considera realmente CSRF ya que no hay cambio de estado. Existe una política de CORS, por lo que no estoy seguro de si eso me impide hacerlo. Y el barniz es la parte delantera con X-XSS-Protection: 1 habilitado.
Lo que he intentado, simplemente tener una página de dominio diferente carga el punto final. Con un usuario registrado en otra pestaña. Esto devuelve un 200, con las cookies esperadas del usuario que inició sesión, pero no la respuesta JSON.
<img src="https://mydomain/endpoint"width="0" height="0" border="0">
Lo siguiente devuelve un 200 con las cookies correctas del usuario registrado, pero no hay respuesta json. Creo que esto no está devolviendo datos debido a la misma política de origen en el navegador. Corrígeme si me equivoco.
document.write('<img src="https://mydomain/endpoint?cookie='+document.cookie+'" />')
Tanto XMLHttpRequest como JQuery para realizar una solicitud GET al punto final objetivo, nuevamente desde un dominio diferente y un usuario que inició sesión en una pestaña diferente. Devuelve un 401 no autorizado y sin cookies. Tal vez haya algún jquery adicional que necesite capturar y enviar cookies con la solicitud.
$.get('https://mydomain/endpoint', function(responseText) {
alert(responseText);});
Además de copiar la solicitud de curl desde la consola de desarrolladores de Chrome de una solicitud web exitosa al punto final de la API. Sorprendentemente, curl no devuelve el token nuevo incluso con los parámetros esperados & galletas. Quizás también por las mismas políticas de origen.
Otras ideas, ¿es esto posible con lo que he descrito?