securesharkinputs
Version:
Advanced enterprise validation library with multi-layer security protection for SecureShark
395 lines (306 loc) • 9.25 kB
Markdown
# 🛡️ SecureSharkInputs - Guía Completa Paso a Paso
## 📋 Índice
1. [🎯 ¿Qué es SecureSharkInputs?](#-qué-es-securesharkinputs)
2. [📦 Instalación](#-instalación)
3. [🚀 Primeros Pasos](#-primeros-pasos)
4. [⚛️ Uso con React](#️-uso-con-react)
5. [🧪 Testing](#-testing)
6. [🔧 Configuración Avanzada](#-configuración-avanzada)
7. [❓ Troubleshooting](#-troubleshooting)
## 🎯 ¿Qué es SecureSharkInputs?
SecureSharkInputs es una librería **súper simple** que protege automáticamente todos los inputs de tu aplicación contra:
- 🚫 **Ataques XSS** (Cross-site scripting)
- 🚫 **Inyección SQL**
- 🚫 **Robo de datos** (cookies, localStorage, etc.)
- 🚫 **Contenido inapropiado**
- 🚫 **Caracteres Unicode maliciosos**
- 🚫 **Manipulación del DOM**
### 🎯 ¿Por qué necesitas esto?
**Sin protección:**
```javascript
// ❌ Vulnerable a ataques
<input type="text" />
// Usuario puede escribir: <script>alert('hack')</script>
```
**Con SecureSharkInputs:**
```javascript
// ✅ Protegido automáticamente
<ValidationShark
name="email"
type="email"
label="Email"
required={true}
/>
// Bloquea automáticamente cualquier intento de ataque
```
## 📦 Instalación
### Paso 1: Instalar la librería
```bash
npm install securesharkinputs
```
**✨ ¡Templates se instalan automáticamente!**
### Paso 2: Verificar la instalación
```bash
# Test básico
node node_modules/securesharkinputs/scripts/test-client.js
```
## 🚀 Primeros Pasos
### Paso 1: Usar el template automático
Cuando instalas la librería, se crea automáticamente un template en:
```
src/components/SecureSharkForm.tsx
```
### Paso 2: Importar y usar
```jsx
import SecureSharkForm from './components/SecureSharkForm';
function App() {
return <SecureSharkForm />;
}
```
### Paso 3: Personalizar
```jsx
"use client";
import React from 'react';
import { useForm } from 'react-hook-form';
import ValidationShark from 'securesharkinputs';
const MyForm = () => {
const { handleSubmit } = useForm();
const onSubmit = (data) => {
console.log('Form submitted:', data);
};
return (
<form onSubmit={handleSubmit(onSubmit)}>
<ValidationShark
name="name"
type="text"
label="Name"
placeholder="Enter your name"
required={true}
/>
<ValidationShark
name="email"
type="email"
label="Email"
placeholder="Enter your email"
required={true}
/>
<button type="submit">Submit</button>
</form>
);
};
```
## ⚛️ Uso con React
### 🎯 Componente ValidationShark
El componente `ValidationShark` es **todo en uno**:
```jsx
<ValidationShark
name="email" // ✅ Nombre del campo (requerido)
type="email" // ✅ Tipo de input
label="Email" // ✅ Etiqueta
placeholder="Email" // ✅ Placeholder
required={true} // ✅ Campo obligatorio
onValid={() => {}} // ✅ Callback cuando es válido
onInvalid={() => {}} // ✅ Callback cuando detecta amenazas
/>
```
### 🎯 Props Disponibles
| Prop | Tipo | Requerido | Descripción |
|------|------|-----------|-------------|
| `name` | string | ✅ | Nombre del campo para react-hook-form |
| `type` | string | ❌ | Tipo de input (text, email, password, etc.) |
| `label` | string | ❌ | Texto de la etiqueta |
| `placeholder` | string | ❌ | Texto del placeholder |
| `required` | boolean | ❌ | Si el campo es obligatorio |
| `className` | string | ❌ | Clases CSS adicionales |
| `onValid` | function | ❌ | Callback cuando input es válido |
| `onInvalid` | function | ❌ | Callback cuando detecta amenazas |
### 🎯 Ejemplos de Uso
#### Campo de texto básico:
```jsx
<ValidationShark
name="name"
type="text"
label="Name"
placeholder="Enter your name"
/>
```
#### Campo de email obligatorio:
```jsx
<ValidationShark
name="email"
type="email"
label="Email"
placeholder="Enter your email"
required={true}
/>
```
#### Campo con callbacks:
```jsx
<ValidationShark
name="message"
type="text"
label="Message"
placeholder="Enter your message"
onValid={() => console.log('✅ Input válido')}
onInvalid={() => console.log('❌ Amenaza detectada')}
/>
```
## 🧪 Testing
### 🎯 Tests Incluidos
La librería incluye 3 herramientas de testing:
#### 1. Test Básico
```bash
node node_modules/securesharkinputs/scripts/test-client.js
```
**Verifica:**
- ✅ Instalación correcta
- ✅ Componentes disponibles
- ✅ Validación básica
#### 2. Test de Integración
```bash
node node_modules/securesharkinputs/scripts/test-integration.js
```
**Verifica:**
- ✅ Todas las funcionalidades
- ✅ Instalación de templates
- ✅ Validación de seguridad
#### 3. Test de Conexión
```bash
node node_modules/securesharkinputs/scripts/test-connection.js
```
**Verifica:**
- ✅ Protección real de inputs
- ✅ Detección de amenazas
- ✅ Bloqueo de formularios
### 🎯 Agregar Scripts al package.json
```json
{
"scripts": {
"test:shark": "node node_modules/securesharkinputs/scripts/test-client.js",
"test:shark-integration": "node node_modules/securesharkinputs/scripts/test-integration.js",
"test:shark-connection": "node node_modules/securesharkinputs/scripts/test-connection.js"
}
}
```
### 🎯 Ejemplo de Output
```bash
# Running test-client.js
✅ Library installed correctly
✅ ValidationShark component available
✅ Security validation working
✅ Template files present
# Running test-connection.js
🔍 Analyzing your project...
✅ Found 3 protected inputs
✅ Security validation active
📊 Protection coverage: 100%
```
## 🔧 Configuración Avanzada
### 🎯 Callbacks Personalizados
```jsx
const handleValidInput = (inputId) => {
console.log(`✅ Input "${inputId}" es válido`);
};
const handleInvalidInput = (inputId) => {
console.log(`❌ Input "${inputId}" contiene amenazas`);
};
<ValidationShark
name="email"
onValid={() => handleValidInput('email')}
onInvalid={() => handleInvalidInput('email')}
/>
```
### 🎯 Estilos Personalizados
```jsx
<ValidationShark
name="email"
className="custom-input-class"
style={{ borderColor: 'red' }}
/>
```
### 🎯 Validación de Campos Obligatorios
```jsx
<ValidationShark
name="name"
label="Name"
required={true} // ← Agrega validación automática
/>
```
**El componente automáticamente:**
- ✅ Muestra asterisco (*) en el label
- ✅ Previene envío si está vacío
- ✅ Muestra mensaje de error
- ✅ Integra con react-hook-form
## ❓ Troubleshooting
### 🚨 Problema: No se instala el template
**Solución:**
```bash
# Instalación manual
node node_modules/securesharkinputs/scripts/manual-install.js
```
### 🚨 Problema: Componente no funciona
**Verificar:**
1. ✅ React instalado: `npm list react`
2. ✅ react-hook-form instalado: `npm list react-hook-form`
3. ✅ Import correcto: `import ValidationShark from 'securesharkinputs'`
### 🚨 Problema: No detecta amenazas
**Verificar:**
1. ✅ Abrir consola del navegador (F12)
2. ✅ Buscar logs de validación
3. ✅ Probar con contenido malicioso:
- `<script>alert('xss')</script>`
- `'; DROP TABLE users; --`
### 🚨 Problema: Formulario no se bloquea
**Verificar:**
1. ✅ Botón con `type="submit"`
2. ✅ Formulario con `onSubmit={handleSubmit(onSubmit)}`
3. ✅ ValidationShark dentro del formulario
### 🚨 Problema: Errores de TypeScript
**Solución:**
```bash
# Reinstalar dependencias
npm install
npm run build
```
## 📦 Información del Paquete
- **Library Size**: 131.11 KB (código compilado)
- **Package Size**: 61.5 KB (comprimido para npm)
- **Unpacked Size**: 269.3 KB (incluye dependencias)
- **Dependencies**: react-hook-form, react, typescript, yup (incluidas)
- **TypeScript**: Soporte completo
- **React**: 18+ compatible
### **Desglose de Tamaño:**
- **useSchema.js**: 40.02 KB (motor de validación)
- **secureSharkBackend.js**: 11.02 KB (protección backend)
- **enterpriseValidator.js**: 9.41 KB (servicios enterprise)
- **ValidationShark.js**: 6.96 KB (componente React)
- **index.js**: 2.01 KB (punto de entrada)
## 🎯 ¿Por qué Elegir SecureSharkInputs?
### **Súper Simple**
- Un componente hace todo
- Sin configuración compleja
- Integración automática con react-hook-form
### **Seguridad Enterprise**
- Detección multi-capa de amenazas
- Validación en tiempo real
- Bloqueo automático de formularios
### **Developer Friendly**
- Soporte TypeScript
- Instalación automática de templates
- Documentación completa
- Herramientas de testing incluidas
### **Production Ready**
- Ligera (131.11 KB código de librería)
- Incluye todas las dependencias
- Algoritmos de seguridad probados
**¡Listo para usar! 🚀**