Evitar extracción de documentos con herramientas tipo HTTrack
Las herramientas de scraping automatizado como HTTrack, Wget y Curl pueden comprometer la seguridad de una plataforma web si no se implementan defensas adecuadas. Esta guía presenta medidas técnicas y éticas para proteger documentos sensibles y preservar la soberanía digital.
1. Autenticación avanzada por sesión
- Todo acceso a documentos debe pasar por verificación de sesión PHP (`session_start()`), asegurando la identidad del usuario.
- Las sesiones deben usar cookies `HttpOnly`, con tokens únicos para prevenir secuestro de sesión.
- No se deben exponer enlaces directos a archivos sensibles como PDF o CSV; en su lugar, servirlos a través de scripts como
descargar_documento.phpque validan sesión y permisos.
2. Bloqueo proactivo a bots
Evita que los crawlers comunes accedan a tu sitio usando reglas en .htaccess:
RewriteEngine On
RewriteCond %{HTTP_USER_AGENT} ^HTTrack [NC,OR]
RewriteCond %{HTTP_USER_AGENT} ^wget [NC,OR]
RewriteCond %{HTTP_USER_AGENT} ^curl [NC]
RewriteRule ^.*$ - [F,L]
También puedes bloquear desde PHP:
$ua = $_SERVER['HTTP_USER_AGENT'];
if (preg_match('/HTTrack|wget|curl/i', $ua)) {
header('HTTP/1.0 403 Forbidden');
exit;
}
3. Prevención de indexación
- Evita que los motores de búsqueda rastreen áreas privadas usando un archivo
robots.txt:
User-agent: *
Disallow: /privado/
Disallow: /documentos/
- Agrega metaetiquetas en las páginas sensibles para evitar indexación:
<meta name="robots" content="noindex, nofollow">
4. Protección de archivos por diseño
- Los documentos confidenciales no deben residir en carpetas públicas (
/public_html); mejor colócalos en una ruta segura del servidor, accesible solo vía PHP. - Implementa rutas indirectas con verificación, por ejemplo:
/ver_documento.php?id=abc123en lugar de/archivos/resultado123.pdf.
5. Auditoría y vigilancia de patrones sospechosos
- Monitorea el uso del sistema: número de descargas, frecuencia por IP, patrones repetitivos.
- Usa lógica heurística para detectar scraping automatizado (intervalos regulares, múltiples accesos por minuto, uso de bots conocidos).
6. Enfoque ético y descentralizado
- Entrega de documentos solo tras consentimiento explícito y validación de sesión activa.
- Uso de tokens temporales para descargas: válidos por pocos minutos o una sola vez.
- Incluir fecha de expiración y origen del token para trazabilidad.
7. Recomendaciones adicionales
- Uso futuro de API REST con autenticación por JWT, control granular de permisos y logs auditables.
- Interfaz clara para revocación instantánea de accesos otorgados.
- Educación digital: informar al paciente sobre cómo se protege su privacidad y cómo ejercer control real.