PWR Norma

Auditoria de cumplimiento normativo para sitios web. Verifica RGPD, LSSI y ENS basico. Reutiliza los checks tecnicos de Vigia para SSL, headers, cookies y DNS. Genera informes detallados con puntuacion y recomendaciones.

Instalacion

Norma depende de Vigia para los checks tecnicos. Ambos se cargan automaticamente.

PHP
require_once __DIR__ . '/core/norma.php';
// vigia.php se carga automaticamente

Requisitos minimos

  • PHP 7.4 o superior
  • Extension curl para peticiones HTTP
  • Extension openssl para analisis SSL
  • Acceso a red para analizar sitios externos

Uso por CLI

Terminal
php core/norma.php URL [--rgpd] [--lssi] [--ens] [--todo]

Inicio rapido

Audita un sitio web contra RGPD y LSSI en una linea.

PHP
require_once 'core/norma.php';

$resultado = pwr_norma_auditar('https://ejemplo.com');
$puntuacion = pwr_norma_puntuacion($resultado);
echo 'Cumplimiento: ' . $puntuacion['porcentaje'] . '%';

Funciones

pwr_norma_auditar()

Ejecuta una auditoria completa contra las normativas indicadas. Por defecto audita RGPD y LSSI.

Firma
pwr_norma_auditar(string $url, array $normativas = ['rgpd', 'lssi']): array
ParametroTipoDescripcion
$urlstringURL del sitio a auditar
$normativasarrayNormativas a verificar: 'rgpd', 'lssi', 'ens'

Retorna: array con resultados por normativa, checks individuales y recomendaciones.

pwr_norma_rgpd()

Verifica cumplimiento RGPD: politica de privacidad, consentimiento de cookies, cifrado, etc.

Firma
pwr_norma_rgpd(string $url): array

Retorna: array de checks RGPD con check, cumple (bool), detalle, recomendacion.

pwr_norma_lssi()

Verifica cumplimiento LSSI-CE: aviso legal, datos del titular, condiciones de uso.

Firma
pwr_norma_lssi(string $url): array

Retorna: array de checks LSSI con check, cumple (bool), detalle, recomendacion.

pwr_norma_ens_basico()

Verifica cumplimiento ENS basico: HTTPS, headers de seguridad, configuracion de servidor.

Firma
pwr_norma_ens_basico(string $url): array

Retorna: array de checks ENS con check, cumple (bool), detalle, recomendacion.

pwr_norma_cookies()

Analiza el cumplimiento normativo de las cookies: consentimiento, informacion, duracion.

Firma
pwr_norma_cookies(string $url): array

Retorna: array con cookies_detectadas, banner_presente, problemas.

pwr_norma_politica_privacidad()

Busca y analiza la pagina de politica de privacidad del sitio.

Firma
pwr_norma_politica_privacidad(string $url): array

Retorna: array con encontrada (bool), url_politica, checks de contenido.

pwr_norma_aviso_legal()

Busca y analiza la pagina de aviso legal del sitio.

Firma
pwr_norma_aviso_legal(string $url): array

Retorna: array con encontrado (bool), url_aviso, checks de contenido.

pwr_norma_puntuacion()

Calcula la puntuacion global de cumplimiento normativo en porcentaje.

Firma
pwr_norma_puntuacion(array $resultados): array

Retorna: array con porcentaje (0-100), total_checks, cumplidos, desglose por normativa.

pwr_norma_informe()

Genera un informe completo de cumplimiento en formato JSON o texto.

Firma
pwr_norma_informe(array $resultados, string $formato = 'json'): string
ParametroTipoDescripcion
$resultadosarrayResultados de pwr_norma_auditar()
$formatostring'json' o 'texto'

Retorna: string con el informe formateado.

pwr_norma_info()

Devuelve informacion del modulo: version y normativas soportadas.

Firma
pwr_norma_info(): array

Retorna: array con version, normativas (array de normativas soportadas).

Configuracion

Norma no requiere archivo de configuracion. Utiliza las constantes de Vigia para timeouts y rate limiting de peticiones.

NormativaDescripcionChecks principales
RGPDReglamento General de Proteccion de DatosPolitica de privacidad, consentimiento cookies, cifrado, derechos ARCO
LSSILey de Servicios de la Sociedad de la InformacionAviso legal, datos titular, condiciones de uso, comunicaciones comerciales
ENSEsquema Nacional de Seguridad (basico)HTTPS, headers seguridad, TLS 1.2+, CSP, HSTS
Advertencia: Esta herramienta realiza checks tecnicos automatizados. No sustituye una auditoria legal profesional. Los resultados son orientativos y deben ser validados por un asesor juridico.

Ejemplos

Auditoria completa RGPD + LSSI + ENS

PHP
require_once 'core/norma.php';

$url = 'https://ejemplo.com';
$resultado = pwr_norma_auditar($url, ['rgpd', 'lssi', 'ens']);
$puntuacion = pwr_norma_puntuacion($resultado);

echo "Cumplimiento global: {$puntuacion['porcentaje']}%\n";
echo "Checks cumplidos: {$puntuacion['cumplidos']}/{$puntuacion['total_checks']}\n";

// Generar informe
$informe = pwr_norma_informe($resultado, 'json');
file_put_contents('informe_cumplimiento.json', $informe);

Solo verificar RGPD

PHP
require_once 'core/norma.php';

$rgpd = pwr_norma_rgpd('https://ejemplo.com');
foreach ($rgpd as $check) {
    $estado = $check['cumple'] ? 'OK' : 'FALLO';
    echo "[{$estado}] {$check['check']}: {$check['detalle']}\n";
}

Verificar politica de privacidad y aviso legal

PHP
require_once 'core/norma.php';

$url = 'https://ejemplo.com';

$privacidad = pwr_norma_politica_privacidad($url);
echo 'Politica de privacidad: ' . ($privacidad['encontrada'] ? 'Si' : 'No') . "\n";

$aviso = pwr_norma_aviso_legal($url);
echo 'Aviso legal: ' . ($aviso['encontrado'] ? 'Si' : 'No') . "\n";

$cookies = pwr_norma_cookies($url);
echo 'Banner cookies: ' . ($cookies['banner_presente'] ? 'Si' : 'No') . "\n";

Uso desde CLI

Terminal
# Auditoria completa
php core/norma.php https://ejemplo.com --todo

# Solo RGPD
php core/norma.php https://ejemplo.com --rgpd

# RGPD + LSSI
php core/norma.php https://ejemplo.com --rgpd --lssi

# Solo ENS basico
php core/norma.php https://ejemplo.com --ens