Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                

Actividad2 - Seguridad en Aplicaciones AJAX

Descargar como pdf o txt
Descargar como pdf o txt
Está en la página 1de 21

Asignatura Datos del alumno Fecha

Seguridad en sistemas, Apellidos: Hernandez Sabatino


8/1/2024
aplicaciones y el big data Nombre: Jose

SEGURIDAD EN SISTEMAS
APLICACIONES Y EL BIG DATA
Actividad 2: Seguridad en aplicaciones Ajax

Descripción breve
En esta actividad se investigará sobre aplicaciones AJAX, su origen y concepción y analizar sus
debilidades y fortalezas a tomar en cuenta la hora de su implementación

José Antonio Hernández Sabatino


joseantonio.hernandez697@comunidadunir.net
ÍNDICE
ÍNDICE ..................................................................................................................................................... 1
AJAX ...................................................................................................................................................... 2
SOP ......................................................................................................................................................... 5
VULNERABILIDADES........................................................................................................................ 6
JSON .................................................................................................................................................. 6
Principales métodos de ataque JSON ....................................................................................... 7
XML.................................................................................................................................................... 7
JAVASCRIPT .................................................................................................................................... 9
AJAX BRINDGING / PUENTE AJAX ......................................................................................... 11
DEFENSAS.......................................................................................................................................... 11
PROTECCIONES ESPECIFICAS PARA JAVASCRIPT ............................................................. 14
RECOMENDACIONES FINALES .................................................................................................... 15
BIBLIOGRAFIA .................................................................................................................................. 17
Asignatura Datos del alumno Fecha
Seguridad en sistemas, Apellidos: Hernandez Sabatino
8/1/2024
aplicaciones y el big data Nombre: Jose

AJAX
Lo normal al solicitar un recurso web en los 90s y principios de los 2000's era que al acceder
al obtener el DNS obteníamos un archivo de carácter estatico, y a partir del cual podriamos ser
redirigido a otros recursos, en la medida que internet comenzó a ser más dinámico fue
necesario implementar protocolos que permitieran navegar de modo más o menos seguro, de
aquí la creación de AJAX.

Fuente de la imagen: Autoría propia (2024).

AJAX significa Asynchornous Javascript and XML (Javascript Asincrono y XML) y a su vez
XML es eXtensible Markup Language (Lenguaje de marcado extensible), por tanto, lo primero
que nos debe quedar claro es que AJAX no refiere a un lenguaje de programación o un
framework de ningún tipo, sino que es una tecnología. La idea de esta tecnología es permitir a
un navegador (o una aplicación) solicitar recursos a un servidor asíncrono, que el cliente no
sabe cuándo recibirá esos recursos que solicitó. Esto es especialmente relevante para las RIAs
ya que el contenido que deben mostrar es de carácter dinámico, puede que pueda deberse a
búsquedas realizadas por el usuario, o preferencias optimizadas mediante algoritmos de IA y
Data Science, claro ejemplo de esto es YouTube.
Asignatura Datos del alumno Fecha
Seguridad en sistemas, Apellidos: Hernandez Sabatino
8/1/2024
aplicaciones y el big data Nombre: Jose

Obtenemos de este modo un proceso mucho más complejo, ya que distintos componentes de
la aplicación son cargados tomando en cuenta diferentes factores según se construye el
componente, que puede ir desde acciones de búsqueda iniciadas por el usuario, un despliegue
dinámico al ir haciendo scrolling, o simplemente tener tiempos de espera mientras la
información llega desde el servidor. Otro requerimiento muy importante en las RIA que Ajax
satisface fue el solo ir cargando y recargando las áreas que eran necesarias, evitando que la
página web recargara por completo, ahorrando recursos web y de procesamiento tanto al
navegador como al servidor, ya que cada componente es responsable de las solicitudes que
realiza.

Fuente: Autoría propia (2024).

Para que el navegador pudiera realizar estas tareas se implementó un método en


JavaScript que cumpliera este cometido, llamado XMLHttpRequest, que según la
documentación de MDN, soporta cualquier tipo de datos, aunque fue sustituido más adelante
por fetch, además los autores nos indican que:

En el desarrollo web moderno XMLHttpRequest se usa por tres razones:


Algunas limitantes según IBM son:

1. Razones históricas: necesitamos soportar scripts existentes con


XMLHttpRequest .
Asignatura Datos del alumno Fecha
Seguridad en sistemas, Apellidos: Hernandez Sabatino
8/1/2024
aplicaciones y el big data Nombre: Jose

2. Necesitamos soportar navegadores viejos, y no queremos polyfills (p.ej.


para mantener los scripts pequeños).

3. Necesitamos hacer algo que fetch no puede todavía, ej. rastrear el


progreso de subida (MDN, 2024).

Es importante aclar que a pesar del significado del acrónimo AJAX, este no está realmente
limitado a XML, sino que fue desarrollado con XML pero que soporta muchas otras formas de
intercambio de información como JSON, CSV, YAML etc. Por otro lado, una rápida consulta
a la documentación de otros lenguajes y sus frameworks, mostrara que AJAX no está
únicamente limitado JavaScript, sino en general a cualquier lenguaje con capacidades de
conexión a la red.

Para concluir, hay que decir que el XMLHttpRequest, tiene algunas limitantes importantes
que hay que tener en cuenta, según IBM (2024):

Soporte de navegador: No todos los navegadores admiten JavaScript o el objeto


XMLHttpRequest. Aunque probablemente refiere a navegadores más antiguos o menos
comerciales, dado que la mayor parte de la población usa navegadores basados en Chromiun.

Seguridad y privacidad del usuario: No se abordan todas las preocupaciones. Es decir,


Ajax habla de cómo se intercambia la información, pero no como asegurar dicha información.

Marcador y navegación: Dado que Ajax se usa para carga asíncrona de bits de contenido
en una página existente, puede que parte de la información de la página no corresponda a una
recién cargada. El historial del navegador y los marcadores pueden no tener el
comportamiento correcto ya que la URL no cambió a pesar de que partes de la página fueron
modificadas un problema común en la Single Page Aplications (SPA).
Asignatura Datos del alumno Fecha
Seguridad en sistemas, Apellidos: Hernandez Sabatino
8/1/2024
aplicaciones y el big data Nombre: Jose

SOP
La Same Origin Policy (Política del mismo Origen), Es una importante medida de seguridad
relacionada a AJAX que bloquea las peticiones donde el solicitante y servidor no están
debidamente identificados. El origen es definido en la estructura de la URL con tres factores
importantes:

1. El esquema / scheme: Que puede ser http o https, dado esto, http://google.com y
https://google.com no son considerados el mismo origen.
2. El dominio / domain: Que es el nombre con el que buscamos un sitio web o un servidor,
cualquier cambio en el nombre del mismo invalida la SOP.
3. El puerto / port: a travez del cual se hace la solicitud, aunque normalmente no es
visible, cualquier cambio invalida la SOP.

Los direccionamientos posteriores al puerto y dominio no son tomados en cuenta a la hora de


validar la SOP ya que impedirían el correcto funcionamiento de los subcomponentes de una
página.

Recordando que, en un navegador, cada pestaña es una instancia separada de las demás, dos
pestañas que contengan información de un mismo sitio pueden intercambiar información
entre ellas, pero no asi con pestañas que contenga información de sitios diferentes.
Asignatura Datos del alumno Fecha
Seguridad en sistemas, Apellidos: Hernandez Sabatino
8/1/2024
aplicaciones y el big data Nombre: Jose

Fuente: Autoría propia (2024).

VULNERABILIDADES

Las RIAs y AJAX son propenso a una serie de ataques por parte de actores
malintencionados, a continuación, mencionaremos algunas de las principales
vulnerabilidades en distintos aspectos de la comunicación en la red.

JSON

JSON es un popular formato de intercambio de información usado comúnmente por APIs


REST, que tiene como ventajas el ser bastante ligero, más seguro que el texto plano y
generalmente descriptivo acerca de los datos que contiene. Los problemas asociados a la
seguridad en datos JSON son:

• Cuando el servidor procesa datos de fuentes no seguras y/o sin sanear los datos
previamente.
• Ataques del lado del cliente resultado de que los datos proporcionados por el usuario
se analizan utilizando la función eval() de JavaScript sin ningún tipo de saneamiento
.
Asignatura Datos del alumno Fecha
Seguridad en sistemas, Apellidos: Hernandez Sabatino
8/1/2024
aplicaciones y el big data Nombre: Jose

Principales métodos de ataque JSON

Ataque de deserialización JSON: Es posible realizar y explotar ataques de deserialización


en la implementación JSON, esto normalmente se usa para ataques DoS o incrustar código
malicioso.

Ataque JSONP (relleno JSON): JSONP significa Notación de objetos JavaScript con relleno,
que permite enviar datos JSON entre dominios sin preocuparse por problemas entre
dominios.

Ataques de fuerza bruta: Es posible realizar ataques que caen bajo la categoría de fuerza
bruta, como pruebas de limitación de velocidad, política de bloqueo, etc. en JSON. Los pasos
son similares a los enfoques tradicionales de aplicaciones web.

Ataques de inyección: si falta validación de entrada y la aplicación no realiza las


comprobaciones adecuadas, es posible realizar cualquier tipo de ataque de inyección, como
inyección SQL, inyección de comandos, etc., según cómo funcionalidad de la aplicación.

CSRF: Es posible realizar CSRF en una implementación basada en JSON para secuestrar las
peticiones de una página o aplicación, pero a veces puede resultar complicado.

XML

Para los datos XML la OWASP defino dos conjuntos de vulnerabilidades que son la más
comunes.

1. Formato incorrecto.
2. XML no válidos.

Documentos XML con formato incorrecto: vulnerabilidades que utilizan documentos con
formato incorrecto.

La especificación XML del W3C define un conjunto de principios que los documentos XML
deben seguir para considerarse bien formados. Cuando un documento viola cualquiera de
estos principios, se debe considerar un error fatal y los datos que contiene se consideran
malformados.
Asignatura Datos del alumno Fecha
Seguridad en sistemas, Apellidos: Hernandez Sabatino
8/1/2024
aplicaciones y el big data Nombre: Jose

XML External Entities expansion / XXE: Un ataque de entidad externa XML es un tipo
de ataque contra una aplicación que analiza la entrada XML. Este ataque se produce cuando
un analizador XML débilmente configurado procesa la entrada XML que contiene una
referencia a una entidad externa. Este ataque puede provocar la divulgación de datos
confidenciales, denegación de servicio, falsificación de solicitudes del lado del servidor,
escaneo de puertos desde la perspectiva de la máquina donde se encuentra el analizador y
otros impactos en el sistema.

Bomba de descompresión: Las bombas de descompresión (también conocidas como


bombas ZIP) se aplican a todas las bibliotecas XML que pueden analizar flujos XML
comprimidos, como flujos HTTP comprimidos con gzip o archivos comprimidos con LZMA.
Para un atacante, puede reducir la cantidad de datos transmitidos en tres magnitudes o más

Ejemplo de código de Bomba de descompresión. Tomado del GitHub de Harsh Bothra


(2024).

Documentos XML no válidos: vulnerabilidades que utilizan documentos que no tienen la


estructura esperada.

Un documento con formato incorrecto puede afectar el consumo de recursos del CPU. En
determinados escenarios, la cantidad de tiempo necesaria para procesar documentos con
formato incorrecto puede ser mayor que la necesaria para documentos con formato correcto.
Cuando esto sucede, un atacante puede aprovechar un ataque de consumo asimétrico de
recursos para aprovechar el mayor tiempo de procesamiento y provocar una denegación de
servicio (DoS).

RSS Injection: La tecnología RSS es una característica de XML que permite distribuir
contenido en tiempo real, es muy común en blogs, canales de noticias, y en general, cualquier
Asignatura Datos del alumno Fecha
Seguridad en sistemas, Apellidos: Hernandez Sabatino
8/1/2024
aplicaciones y el big data Nombre: Jose

fuente de información que requiera actualización constante. Los atacantes pueden aprovechar
esta característica para inyectar condigo malicioso a través del contenido.

Billion Laughs: El ataque Billion Laughs, también conocido como expansión exponencial de
entidades, utiliza múltiples niveles de entidades anidadas. Cada entidad hace referencia a otra
entidad varias veces y la definición de entidad final contiene una pequeña cadena. La
expansión exponencial genera varios gigabytes de texto y consume mucha memoria y tiempo
de CPU.

Bomba Yaml: Una bomba es un tipo especial de carga útil generalmente dirigida a servidores
web con puntos finales con acceso (endpoints) a Internet que, tras la serialización, aumenta
su tamaño en una escala exponencial, ocupando toda la memoria disponible de los sistemas y
eventualmente bloqueándolos. Estos accidentes provocan apagones, por lo que las bombas
son ideales para ataques de denegación de servicio.

JAVASCRIPT

Siendo el lenguaje nativo con el que los navegadores dan funcionalidad y dinamismo a las
páginas, SAP y RIAS, es natural que se utilizado a su vez por atacantes como medio para lograr
sus objetivos, además de ser usado hoy en día para construir APIs y aplicaciones de todo tipo.

Librerías de Terceros: Existen un enorme ecosistema de librerías para JavaScript de fácil


accesibilidad gracias a su gestor de paquetes NPM, que son aplicados tanto en el front-end
como el back-end, muchas veces estas librerías son inyectadas con código malicioso o
simplemente no han sido actualizadas en mucho tiempo y/o presentan vulnerabilidades
conocidas que no han sido corregidas.
Asignatura Datos del alumno Fecha
Seguridad en sistemas, Apellidos: Hernandez Sabatino
8/1/2024
aplicaciones y el big data Nombre: Jose

Vulnerabilidades del Código Fuente: Son vulnerabilidades que se encuentra en el


desarrollo mismo de la página en cuestión, los desarrolladores con inexperiencia o falta de
conocimiento pueden dejar desprotegidos los datos sensibles, los tokens y las cookies, así
como dejar fallas abiertas que pueden ser explotadas por los atacantes.

Cross-Site Scripting (XSS): Ocurre cuando un atacante inyecta código malicioso en una
página web vista por otros usuarios. Luego, usuarios desprevenidos pueden ejecutar el código
inyectado, lo que permite al atacante robar información confidencial o realizar acciones no
autorizadas en nombre del usuario. Cross Site Request Forgery (CSRF) La falsificación de
solicitudes entre sitios (CSRF) es un ataque que obliga a un usuario final a ejecutar acciones
no deseadas en una aplicación web en la que está actualmente autenticado. Con un poco de
ayuda de ingeniería social (como enviar un enlace por correo electrónico o chat), un atacante
puede engañar a los usuarios de una aplicación web para que ejecuten acciones de su elección.

MéMétodo eval(): Aunque MDN lo define como un método que evalúa una cadena de
caracteres que si resulta en una expresión o sentencia validad es ejecutada, pudiéramos decir
que su función es más bien ejecutar código de manera póstuma a su declaración u obtención,
siempre y cuando sea un código valido. eval() es ejecutado con los mismos privilegios que el
código que invoca este método, es decir, si es invocado desde un scope de 3er nivel, puede
afectar a todo el nivel los de más abajo, y si es invocado desde el 1er nivel (objeto global),
afectara a la totalidad del código. Estas características permiten inyectar todo tipo de código
malicioso si se encuentra el método en alguna parte del script.

Uso de var y function: Las palabras reservadas de var, usada para declarar variables y
function, para declarar funciones, tienen el problema de que son accesibles al largo de todo el
espacio de memoria que utiliza JavaScript sin importar el nivel de privilegios de la misma, por
lo que un atacante pudiera inyectar código malicioso en cualquiera de las dos.
Asignatura Datos del alumno Fecha
Seguridad en sistemas, Apellidos: Hernandez Sabatino
8/1/2024
aplicaciones y el big data Nombre: Jose

Fuente: Autoría propia (2024).

AJAX BRINDGING / PUENTE AJAX

Por motivos de seguridad, las aplicaciones AJAX solo pueden conectarse nuevamente al sitio
web del que provienen. Para permitir que AJAX contacte sitios de terceros de esta manera, se
creó el puente de servicio AJAX. En un puente, un host proporciona un servicio web que actúa
como proxy para reenviar el tráfico entre el JavaScript que se ejecuta en el cliente y el sitio de
terceros. Un puente podría considerarse una conexión de "servicio web a servicio web". Un
atacante podría utilizar esto para acceder a sitios con acceso restringido.

DEFENSAS

HTTPS: Aunque parezca una obviedad, uno de los primeros pasos debe ser el solo permitir
las solicitudes HTTPS. Además, el sitio o la API en cuestión debe contar también con su
certificado para enviar los datos de manera encriptada.

CORS: El Cross-Origin Resource Sharing o intercambio de recursos de origen cruzado es una


característica que posee dos funciones esenciales de seguridad:

1. Permite a una aplicación web exponer sus recursos, de manera selectiva o general.
Asignatura Datos del alumno Fecha
Seguridad en sistemas, Apellidos: Hernandez Sabatino
8/1/2024
aplicaciones y el big data Nombre: Jose

2. Permite a un cliente web realizar una petición AJAX que se encuentra en otro dominio.
CORS añade Cabeceras a la solicitud HTTP que permite a las aplicaciones y
navegadores describir los orígenes de las peticiones, además las especificaciones de los
navegadores exigen que comprueben previamente la petición, cosa que es posible
realizar también a nivel de aplicación.

Puede (y es bueno) usarlo en combinación con cookies de seguridad, y además definir los
métodos permitidos en las peticiones.

Cookies CSRF Token: Para prevenir los ataques CSRF se puede generar un token con
algoritmos de seguridad que permitan que cada uno sea único y sirvan como credencial de
identificación para una aplicación/usuario con los debidos permisos para interactuar con el
origen de los recursos. Si no hubiera un token valido, las consultas deben ser bloqueadas. Un
CSRF token debe tener las siguientes características:

1. Único para cada sesión.


2. Debe ser secreto.
3. Su valor debe ser impredecible.

Los tokens deben ser enviados a través de las cabeceras HTTP para no ser leídos por
JavaScript. Muchos Framework para el desarrollo de APIs ya vienen con métodos solidos para
el uso de estos tokens, como: Django, .NetCore, Laravel, Spring o NestJS.

DTO: Un Data Transfer Object (Objeto de Transferencia de Datos), es un patrón de diseño


que define como se van a transmitir los datos a través de la red definiendo los campos que
debe tener el conjunto de datos a enviar o recibir, que puede ser personalizado para cada punto
de entrada. La aplicación solo debe aceptar los campos definidos y se deben validar dichos
campos para que cumplan con las características deseadas, y rechaza todo lo que no cumpla
con estas características.
Asignatura Datos del alumno Fecha
Seguridad en sistemas, Apellidos: Hernandez Sabatino
8/1/2024
aplicaciones y el big data Nombre: Jose

Ejemplo de un DTO para una API de un servidor RADIUS, los campos deben

estar llenos y cumplir con los parámetros especificados.

Fuente: GitHub de FranSabt (2023)

Validación de Campos: Puede estar íntimamente relacionado con el DTO, la idea general
consiste en revisar que cada uno los campos que se reciben o se enviar a través de la red
cumplan con características específicas al momento de procesar la información, muchas veces
esto se hace también aplicado formulas bien conocidas de expresiones regulares, aunque no
siempre es necesario.

Ejemplo chequeo de campos de un JSON

Fuente: GitHub de FranSabt (2023)


Asignatura Datos del alumno Fecha
Seguridad en sistemas, Apellidos: Hernandez Sabatino
8/1/2024
aplicaciones y el big data Nombre: Jose

PROTECCIONES ESPECIFICAS PARA JAVASCRIPT

JavaScript Dado que los navegadores funcionan esencialmente con JavaScript para darle
interactividad y dinamos a las páginas es importante tener en cuenta varias medidas de
seguridad con respecto a los scripts que dan estas características, teniendo especial cuidado
con las características más riesgosas de este lenguaje.

Uso de Linters: Son extensiones para los editores de código e IDEs, que permiten revisar la
sintaxis del script, y algunos incluso evalúan los resultados de funcione y métodos en tiempo
real.

Validar Inputs del Usuario: Existen librerías y cientos de recursos en internet que permite
aplicar Regexs fuerte y probados para los inputs que el usuario coloca en los campos
determinados.

Usar TypeScript: Este super set de JavaScript permite realizar el desarrollo de los scripts
haciendo uso de tipado fuerte e interfaces para tener una alta consistencia ente los valores
enviados y recibidos. Este lenguaje no se usa en producción, sino que transpila de forma segura
todo el proyecto en un solo script.

Ejemplo de un método de clase para API de un servidor RADIUS, el método indica el tipo de
dato a recibir y los datos que podría devolver.

Fuente: GitHub de FranSabt (2023)

Mimificación y Ofuscación del código: La mimificación refiere a colocar todo el código


de los diferentes scripts en un solo archivo, lo que permite además una lectura de mucho más
rápida por parte del navegador y/o el intérprete y dificulta la manipulación del código. Por
otro lado, la ofuscación cambia los nombres de funciones, clases, variables, etc., en valores
difíciles de leer para un ser humano, dificultado el rastreo de las funcionalidades.
Asignatura Datos del alumno Fecha
Seguridad en sistemas, Apellidos: Hernandez Sabatino
8/1/2024
aplicaciones y el big data Nombre: Jose

Ejemplo de un código de ReactJS mimificado y ofuscado.

Fuente: GitHub de FranSabt (2023)

WebAssembly (Wasm): Es un nuevo estándar para cumplir con las funcionalidades que
posee JavaScript permitiendo a otros lenguajes programar las mismas tareas y exportarlas a
un archivo binario. Actualmente los navegadores transforman el código wasm en código JS,
pero si naturaleza lo hace más difícil de manipular.

RECOMENDACIONES FINALES

• Siempre testear el código contra inyecciones de todo tipo, siempre y cuando sean
pertinentes a la aplicación, es decir, si la aplicación no ejecuta comando SQL no hay
necesidad de probar la resistencia de una SQL Injection.
• Uso de frameworks de desarrollo bien conocidos, ya que por lo general están bien
probados, han sobrevivido a la prueba del tiempo y tienden a tener comunidades
activas que se encargan de identificar y corregir las vulnerabilidades.
• En el desarrollo con JavaScript, conocer los métodos y practicas más vulnerables para
poder evitarlos, a su vez, usar las nuevas palabras reservadas para variables y
contantes, let y const, respectivamente, además de crear funciones flechas (fat arrow
Asignatura Datos del alumno Fecha
Seguridad en sistemas, Apellidos: Hernandez Sabatino
8/1/2024
aplicaciones y el big data Nombre: Jose

functions), estas variables y funciones tienen un scope más restringido. Ejemplo de


una función flecha:

const mi_funcion = ( parámetros ) => {

let mi_variable; // yo no tengo alcance global, solo


existo aquí

// código a ejecutar

};

• Tener una lista clara y concisa de los requerimientos de seguridad que requiere una
aplicación y hacer el seguimiento.
Asignatura Datos del alumno Fecha
Seguridad en sistemas, Apellidos: Hernandez Sabatino
8/1/2024
aplicaciones y el big data Nombre: Jose

BIBLIOGRAFIA

Banach, Mariusz (s. f.). XML Vulnerabilities.


https://gist.github.com/mgeeky/4f726d3b374f0a34267d4f19c9004870 . Visitado por última
vez el 04/01/2024.

Bothra, Harsh (2020 aprox.). Json Padding (JSONP) Attack. learn365/days/day8.md at


main · harsh-bothra/learn365 (github.com). Visitado por última vez el 04/01/2024.

Cantelli, Francisco (17/05/2021). Same-Origin Policy.


https://franc205.medium.com/same-origin-policy-e1533bed9dcd. Visitado por última vez el
03/01/2024.

GuardRails (seudónimo) (18/04/2023). The Top Ten JavaScript Vulnerabilities and How
to Avoid Them. https://securityboulevard.com/2023/04/the-top-ten-javascript-
vulnerabilities-and-how-to-avoid-them/. Visitado por última vez el 03/04/2024.

Django Documentation for v4.2. How to use Django’s CSRF protection


https://docs.djangoproject.com/en/4.2/howto/csrf/. Visitado por última vez el 03/01/2024.

IBM (s. f.). What is Ajax? https://www.ibm.com/docs/en/rational-soft-arch/9.6.1. Visitado


por última vez el 02/01/2024.

MDN (26/10/2023). Cookies. https://developer.mozilla.org/es/docs/Web/HTTP/Cookies.


Visitado por última vez el 05/01/2024.
Asignatura Datos del alumno Fecha
Seguridad en sistemas, Apellidos: Hernandez Sabatino
8/1/2024
aplicaciones y el big data Nombre: Jose

MDN (05/08/2023). Const. const -


https://developer.mozilla.org/es/docs/Web/JavaScript/Reference/Statements/const.
Visitado por última vez el 02/01/2024.

MDN (05/08/2023). let.


https://developer.mozilla.org/es/docs/Web/JavaScript/Reference/Statements/let. Visitado
por última vez el 02/01/2024.

MDN (21/11/23) Fetching data from the server - Learn web development.
https://developer.mozilla.org/en-US/docs/Learn/JavaScript/Client-
side_web_APIs/Fetching_data. Visitado por última vez el 02/01/2024.

MDN (03/08/2023) Funciones.


https://developer.mozilla.org/es/docs/Web/JavaScript/Guide/Functions. Visitado por
última vez el 04/01/2024.

MDN (15/12/2023) Funciones Flecha.


https://developer.mozilla.org/es/docs/Web/JavaScript/Reference/Functions/Arrow_functi
ons. Visitado por última vez el 04/01/2024.

MDN (15/12/2023) HTTPS. https://developer.mozilla.org/es/docs/Glossary/HTTPS.


Visitado por última vez el 02/01/2024.

MDN (24/07/2023) Intercambio de Origen de Recursos Cruzados (CORS).


https://developer.mozilla.org/es/docs/Web/HTTP/CORS#las_cabeceras_de_respuesta_htt
p. Visitado por última vez el 02/01/2024.
Asignatura Datos del alumno Fecha
Seguridad en sistemas, Apellidos: Hernandez Sabatino
8/1/2024
aplicaciones y el big data Nombre: Jose

MDN (20/12/2023). Same-origin policy. https://developer.mozilla.org/en-


US/docs/Web/Security/Same-origin_policy la.org. Visitado por última vez el 02/06/2024.

MDN (01/12/2023) SPA (Single-page application). https://developer.mozilla.org/en-


US/docs/Glossary/SPA n). Visitado por última vez el 02/01/2024.

MDN (05/08/2023). var.


https://developer.mozilla.org/es/docs/Web/JavaScript/Reference/Statements/var. Visitado
por última vez el 02/01/2024.

MDN (01/12/2022) XMLHttpRequest (versión en español).


https://developer.mozilla.org/es/docs/Web/API/XMLHttpRequest. Visitado por última vez
el 02/01/2024.

MDN (06/12/2023) WebAssembly. https://developer.mozilla.org/en-


US/docs/WebAssembly. Visitado por última vez el 05/01/2024.

Monus, Anna (15/12/2021) JavaScript security: Vulnerabilities and best practices.


https://raygun.com/blog/js-security-vulnerabilities-best-practices/. Visitado por última vez
el 05/01/2024.

NestJs Docs (s.f.) CSRF Protection. https://docs.nestjs.com/security/csrf. Visitado por


última vez el 04/01/2024.

NestJs Docs (s.f.) Controllers. https://docs.nestjs.com/controllers#request-payloads.


Visitado por última vez el 05/01/2024.

OWASP (s.f.). Cross Site Request Forgery (CSRF). https://owasp.org/www-


community/attacks/csrf. Visitado por última vez el 04/01/2024.
Asignatura Datos del alumno Fecha
Seguridad en sistemas, Apellidos: Hernandez Sabatino
8/1/2024
aplicaciones y el big data Nombre: Jose

OWASP (s.f.). Cross Site Request Forgery Prevention Cheat Sheet.


https://cheatsheetseries.owasp.org/cheatsheets/Cross-
Site_Request_Forgery_Prevention_Cheat_Sheet.html. Visitado por última vez el
05/01/2024.

OWASP (2024). XML Security. XML Security.


https://cheatsheetseries.owasp.org/cheatsheets/XML_Security_Cheat_Sheet.html -
OWASP Cheat Sheet Series. Visitado por última vez el 04/01/2024.

Microsoft (02/10/2019) Cutting Edge: AJAX Application. https://learn.microsoft.com/es-


es/archive/msdn-magazine/2007/september/cutting-edge-ajax-application-architecture-
part-1. Visitado por última vez el 02/01/2024.

TypeScript (s.f.) TypeScript Documentation. https://www.typescriptlang.org/docs/.


Visitado por última vez el 05/01/2024.

W3 Org (06/06/2010). Same Origin Policy – Web Security.


https://www.w3.org/Security/wiki/Same_Origin_Policy Origin Policy - Web Security
(w3.org). Visitado por última vez el 03/01/2024.

También podría gustarte