0.4.5-alpha • Published 12 months ago

safe-request-scanner v0.4.5-alpha

Weekly downloads
-
License
MIT
Repository
-
Last release
12 months ago

safe-request-scanner

Descripción

safe-request-scanner es una librería diseñada para escanear solicitudes HTTP en busca de posibles vulnerabilidades de seguridad. Esta herramienta es capaz de detectar inyecciones SQL, XSS, inyecciones de comandos, LDAP, XPath e inclusiones de archivos.

Características

  • Escaneo de URL: Verifica la URL de la solicitud en busca de patrones sospechosos.
  • Escaneo de Cuerpo: Analiza el cuerpo de la solicitud, tanto las claves como los valores.
  • Escaneo de Encabezados: Revisa los encabezados HTTP para detectar posibles problemas.
  • Escaneo de FormData: Escanea los datos del formulario enviados en la solicitud.
  • Escaneo de Cookies: Analiza las cookies de la solicitud en busca de posibles vulnerabilidades.
  • Detectores de Seguridad: Utiliza múltiples detectores para identificar inyecciones SQL, XSS, inyecciones de comandos, LDAP, XPath e inclusiones de archivos.

Instalación

Para instalar y utilizar esta librería, sigue estos pasos:

npm install safe-request-scanner

Uso

A continuación se muestra un ejemplo de cómo utilizar la función scanRequest para escanear una solicitud HTTP:

`

import { scanRequest } from 'safe-request-scanner';

const url = 'http://example.com?param1=value1&param2=value2';
const body = {
    username: 'john_doe',
    password: 'securePassword123',
    email: 'john.doe@example.com',
};
const headers = {
    'User-Agent': 'Mozilla/5.0',
    'Content-Type': 'application/json',
};
const formData = new FormData();
formData.append('firstName', 'John');
formData.append('lastName', 'Doe');
const cookies = {
    sessionId: 'abcd1234',
};

const scanOptions = {
    checkUrl: {
        keys: false,
        values: true,
        detectSentences: true,
        detectReservedWords: true,
    },
    checkBody: {
        keys: true,
        values: true,
        detectSentences: true,
        detectReservedWords: true,
    },
    checkHeaders: {
        keys: true,
        values: true,
        detectSentences: true,
        detectReservedWords: true,
    },
    checkFormData: {
        keys: true,
        values: true,
        detectSentences: true,
        detectReservedWords: true,
    },
    checkCookies: {
        keys: true,
        values: true,
        detectSentences: true,
        detectReservedWords: true,
    },
};

const issues = scanRequest({
    url,
    body,
    headers,
    formData,
    cookies,
    options: scanOptions,
});

if (issues.length > 0) {
    console.log('Potential security issues detected:');
    issues.forEach((issue) => console.log(issue));
} else {
    console.log('No issues detected.');
}

`

Detalles de Implementación

Función scanRequest

Esta función es el punto de entrada principal para el escaneo de solicitudes. Toma los parámetros de la solicitud y las opciones de escaneo y devuelve una lista de problemas de seguridad detectados.

Parámetros

url: La URL de la solicitud.

body: El cuerpo de la solicitud.

headers: Los encabezados de la solicitud.

formData: Los datos del formulario de la solicitud.

cookies: Las cookies de la solicitud.

options: Opciones de escaneo personalizadas.

Retorno

Devuelve un array de cadenas que representan los problemas de seguridad encontrados.

Funciones de Escaneo Específicas

scanUrl(url, options): Escanea la URL.

scanBody(body, options): Escanea el cuerpo de la solicitud.

scanHeaders(headers, options): Escanea los encabezados de la solicitud.

scanFormData(formData, options): Escanea los datos del formulario.

scanCookies(cookies, options): Escanea las cookies.

Detectores de Seguridad

detectSQLInjection(input): Detecta inyecciones SQL.

isSQLSentence(input): Verifica si una cadena contiene una sentencia SQL.

detectXSS(input): Detecta XSS (Cross-Site Scripting).

detectCommandInjection(input): Detecta inyecciones de comandos.

detectLDAPInjection(input): Detecta inyecciones LDAP.

detectXPathInjection(input): Detecta inyecciones XPath.

detectFileInclusion(input): Detecta inclusiones de archivos.

Configuración de Proyecto

`

{
    "name": "safe-request-scanner",
    "version": "0.3.8-alpha",
    "main": "dist/index.js",
    "types": "dist/index.d.ts",
    "scripts": {
        "test": "echo \"Error: no test specified\" && exit 1",
        "build": "tsc",
        "start": "ts-node src/index.ts"
        },
    "devDependencies": {
        "@types/node": "^20.14.7",
        "typescript": "^5.5.2",
        "ts-node": "^10.4.0"
        },
    "keywords": [
        "security",
        "sql injection",
        "xss",
        "input validation"
        ],
    "author": "Andres Gutierrez",
    "license": "MIT"
}

`

Contribuciones

Las contribuciones son bienvenidas. Para contribuir, por favor sigue estos pasos:

Haz un fork del repositorio. Crea una nueva rama (git checkout -b feature/nueva-caracteristica). Realiza los cambios necesarios y haz commit (git commit -m 'Agregar nueva característica'). Haz push a la rama (git push origin feature/nueva-caracteristica). Abre un Pull Request. Contacto Para cualquier consulta, puedes contactar a:

https://github.com/anguve/safe-request-scanner

Andres Gutierrez.

Correo: sr.willardkraft@gmail.com

Gracias por utilizar safe-request-scanner

0.4.5-alpha

12 months ago

0.4.4-alpha

12 months ago

0.4.3-alpha

12 months ago

0.4.2-alpha

12 months ago

0.4.1-alpha

12 months ago

0.4.0-alpha

12 months ago

0.3.9-alpha

12 months ago

0.3.8-alpha

12 months ago

0.3.7-alpha

12 months ago

0.3.6-alpha

12 months ago

0.3.5-alpha

12 months ago

0.3.4-alpha

12 months ago

0.3.3-alpha

12 months ago

0.3.2-alpha

12 months ago

0.3.1-alpha

12 months ago

0.2.9-alpha

12 months ago

0.2.8-alpha

12 months ago

0.2.7-alpha

12 months ago

0.2.6-alpha

12 months ago

0.2.5-alpha

12 months ago

0.2.4-alpha

12 months ago

0.2.3-alpha

12 months ago

0.2.2-alpha

12 months ago

0.2.1-alpha

12 months ago

0.1.9-alpha

12 months ago

0.1.8-alpha

12 months ago

0.1.7-alpha

12 months ago

0.1.6-alpha

12 months ago

0.1.5-alpha

12 months ago

0.1.4-alpha

12 months ago

0.1.3-alpha

12 months ago

0.1.2-alpha

12 months ago

0.1.1-alpha

12 months ago

0.0.11-alpha

12 months ago

0.0.10-alpha

12 months ago

0.0.9-alpha

12 months ago

0.0.8-alpha

12 months ago

0.0.7-alpha

12 months ago

0.0.6-alpha

12 months ago

0.0.5-alpha

12 months ago

0.0.4-alpha

12 months ago

0.0.3-alpha

12 months ago

0.0.2-alpha

12 months ago

0.0.1-alpha

12 months ago