¿Qué son las Vulnerabilidades XSS y SQL Injection?
Cross-Site Scripting (XSS): Permite la ejecución de scripts maliciosos en el navegador de un usuario, lo que puede conducir al robo de información o la manipulación del contenido de una página.
SQL Injection: Consiste en la manipulación de consultas SQL a través de entradas no seguras, lo que puede permitir acceso no autorizado a bases de datos o la alteración de información.
Ejemplo de Prevención de XSS en JavaScript
Este código muestra cómo sanitizar la entrada del usuario para evitar ataques XSS:
function sanitizeInput(input) {
const temp = document.createElement("div");
temp.textContent = input;
return temp.innerHTML;
}
const userInput = "<script>alert('Hacked!')</script>";
const safeInput = sanitizeInput(userInput);
console.log(safeInput); // Salida segura sin ejecución de script
Al sanitizar la entrada, evitamos que el navegador ejecute código malicioso.
Ejemplo de Prevención de SQL Injection en Python
Este código muestra cómo realizar una consulta segura usando parámetros en SQLite:
import sqlite3
def consultar_usuario(usuario_id):
conn = sqlite3.connect("base_de_datos.db")
cursor = conn.cursor()
# Consulta segura usando parámetros
cursor.execute("SELECT * FROM usuarios WHERE id = ?", (usuario_id,))
usuario = cursor.fetchone()
conn.close()
return usuario
# Uso seguro
usuario_seguro = consultar_usuario(1)
print(usuario_seguro)
Al utilizar consultas parametrizadas, evitamos que datos malintencionados alteren la consulta SQL.
Conclusión
Prevenir vulnerabilidades como XSS y SQL Injection es esencial para garantizar la seguridad de las aplicaciones. Implementar prácticas seguras en el manejo de entradas y consultas reduce significativamente el riesgo de ataques.