npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2024 – Pkg Stats / Ryan Hefner

safe-request-scanner

v0.4.5-alpha

Published

`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.

Downloads

64

Readme

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: '[email protected]',
};
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: [email protected]

Gracias por utilizar safe-request-scanner