Vous êtes sur la page 1sur 2

Seguridad[editar]

Vase tambin: Seguridad del navegador

JavaScript y el DOM permite que existan programadores que hagan un uso inapropiado para
introducir scripts que ejecuten cdigo con contenido malicioso sin el consentimiento del
usuario y que pueda as comprometer su seguridad.
Los desarrolladores de los navegadores tienen en cuenta este riesgo utilizando dos
restricciones. En primer lugar, los scripts se ejecutan en un sandbox en el que slo se pueden
llevar a cabo acciones relacionadas con la web, no con tareas de programacin de propsito
general, como la creacin de archivos. En segundo lugar, est limitada por la poltica del
mismo origen: los scripts de un sitio web no tienen acceso a la informacin enviada a otro sitio
web (de otro dominio) como pudiera ser nombres de usuario, contraseas o cookies. La
mayora de los fallos de seguridad de JavaScript estn relacionados con violaciones de
cualquiera de estas dos restricciones.
Existen proyectos como AdSafe o Secure ECMA script (SES) que proporcionan mayores
niveles de seguridad, en especial en el cdigo creado por terceros (tales como los
anuncios).40 41
La Poltica de Contenido Seguro (CSP) es el mtodo principal previsto para garantizar que
slo cdigo de confianza pueda ser ejecutado en una pgina web.

Vulnerabilidades cross-site[editar]
Artculos principales: Cross-site scripting y Cross Site Request Forgery.

Un problema comn de seguridad en JavaScript es el cross-site scripting o XSS, una violacin


de la poltica de mismo origen. Las vulnerabilidades XSS permiten a un atacante inyectar en
pginas web vistas por el usuario cdigo JavaScript. Una de esas webs podra ser la de un
banco, pudiendo el atacante acceder a la aplicacin de banca con los privilegios de la vctima,
lo que podra revelar informacin secreta o transferir dinero sin la autorizacin de la vctima.
Una solucin para las vulnerabilidades XSS es utilizar HTML escapar cuando la visualizacin
de datos no confiables.
Algunos navegadores incluyen una proteccin parcial contra los ataques XSS reflejados (el
atacante est en la misma peticin web). El atacante proporciona una URL incluyendo cdigo
malicioso. Sin embargo, incluso los usuarios de los navegadores son vulnerables a otros
ataques XSS, tales como aquellos en los que el cdigo malicioso se almacena en una base de
datos. Slo el correcto diseo de las aplicaciones Web en la parte servidora puede prevenir
totalmente XSS. Las vulnerabilidades XSS tambin pueden ocurrir debido a errores de
ejecucin por los desarrolladores del navegador.42

Otra vulnerabilidad es la falsificacin de peticin de sitio cruzado o CSRF. En CSRF, el cdigo


del sitio web atacante engaa al navegador de la vctima, permitiendo al atacante realizar
peticiones en nombre de la vctima, haciendo imposible saber a la aplicacin de destino (por
ejemplo, la de un banco haciendo una transferencia de dinero) saber si la peticin ha sido
realizada voluntariamente por el usuario o por un ataque CSRF.
El ataque funciona porque, si el sitio de destino hace uso nicamente de las cookies para
autenticar las solicitudes de la vctima, las peticiones iniciadas por el cdigo del atacante
tendrn las mismas credenciales de acceso legtimo que las solicitudes iniciadas por el propio
usuario.
En general, la solucin a CSRF consiste en introducir un campo de formulario oculto cuyo
valor se utilice para realizar la autenticacin, y no slo por medio de las cookies, en solicitudes
que puedan tener efectos duraderos. La comprobacin de la cabecera HTTP referer tambin
puede servir de ayuda.
"Hijacking JavaScript" es un tipo de ataque CSRF en el que una etiqueta <script> en el sitio
web del atacante explota una vulnerabilidad en la pgina del sitio de la vctima que le hace
devolver informacin privada, en forma de JSON o cdigo JavaScript. Las posibles soluciones
son:

que se requiera un token de autenticacin en los parmetros de las peticiones POST y


GET para aquellas peticiones que requieran devolver informacin privada del usuario.

usar POST y nunca GET para solicitudes que devuelven informacin privada

Vous aimerez peut-être aussi