Manténgase a la vanguardia de la codificación segura.
El panorama de las ciberamenazas cambia constantemente y mantenerse a la vanguardia es más importante que nunca. Con una serie de vídeos, blogs y prácticas directrices de codificación segura, podemos ayudarle a mantenerse al día y preparado para lo que venga.
Nuestras últimas directrices sobre codificación segura.
{
"dependencies": {
"foo": "1.0.0 - 2.9999.9999",
"bar": ">=1.0.2 <2.1.2"
}
}
Uso de componentes con vulnerabilidades conocidas
{
"dependencies": {
"foo": "1.0.0 - 2.9999.9999",
"bar": ">=1.0.2 <2.1.2"
}
}
La mayoría de las aplicaciones hacen uso de grandes cantidades de componentes de terceros. Estos componentes proporcionan de todo, desde registro, plantillas, acceso a bases de datos y mucho más. Esto facilita mucho el desarrollo de software y ahorra mucho tiempo. Pero también están hechos por personas, lo que significa que algunos contendrán inevitablemente vulnerabilidades. Lee las directrices para saber más.
import mysql.connector
db = mysql.connector.connect
#Mala práctica. ¡Evita esto! Esto es sólo para aprender.
(host="localhost", user="newuser", passwd="pass", db="sample")
cur = db.cursor()
name = raw_input('Enter Name: ')
cur.execute("SELECT * FROM sample_data WHERE Name = '%s';" % name) for row in cur.fetchall(): print(row)
db.close()
Inyección SQL
import mysql.connector
db = mysql.connector.connect
#Mala práctica. ¡Evita esto! Esto es sólo para aprender.
(host="localhost", user="newuser", passwd="pass", db="sample")
cur = db.cursor()
name = raw_input('Enter Name: ')
cur.execute("SELECT * FROM sample_data WHERE Name = '%s';" % name) for row in cur.fetchall(): print(row)
db.close()
La inyección SQL (SQLi) inyecta código en sentencias SQL para atacar y obtener información importante de una aplicación. Es una vulnerabilidad de seguridad web. Es la técnica más común de hacking que manipula la base de datos y extrae información crucial de ella.
ts
let url = request.params.url;
let response = http.get(url);
let render = response.render();
return render.export();
Falsificación de peticiones del lado del servidor
ts
let url = request.params.url;
let response = http.get(url);
let render = response.render();
return render.export();
Las vulnerabilidades de Falsificación de Peticiones del Lado del Servidor ocurren cuando un usuario es capaz de hacer que una aplicación haga peticiones HTTP a un dominio determinado por el atacante. Si una aplicación tiene acceso a redes privadas/internas, un atacante también podría hacer que la aplicación hiciera peticiones a servidores internos. Veremos esto más de cerca con algunos ejemplos para entender mejor cómo se ve en acción en esta guía.
Muchos frameworks también tienen un conjunto de endpoints que se pueden habilitar y que permiten monitorizar la aplicación, ya sea en un entorno de producción o de pruebas/desarrollo. Estos pueden incluir:
Métricas (Prometheus)
Registros
Información del entorno
Asignaciones de ruta/Url
Desconfiguración de la seguridad
Muchos frameworks también tienen un conjunto de endpoints que se pueden habilitar y que permiten monitorizar la aplicación, ya sea en un entorno de producción o de pruebas/desarrollo. Estos pueden incluir:
Métricas (Prometheus)
Registros
Información del entorno
Asignaciones de ruta/Url
La desconfiguración de la seguridad es una especie de término general que abarca vulnerabilidades comunes que entran en juego debido a los ajustes de configuración de una aplicación, más que a un código defectuoso. Es un tema muy amplio y depende en gran medida de factores como la pila tecnológica. A menudo, solucionar estos problemas es algo que parece sencillo, como cambiar un archivo de configuración o incluso una sola línea de código, pero el impacto y las consecuencias de estas vulnerabilidades pueden ser graves. Lea nuestra guía para saber más sobre esta vulnerabilidad y cómo mitigarla.
Codificación segura en el mundo real missions.
Explore nuestra biblioteca de ejercicios de formación públicos. Estos ejemplos de SCW Missions le ofrecen una experiencia práctica guiada con algunas prácticas ofensivas de codificación segura en una simulación de aplicación del mundo real.