A l’ecosistema digital actual, els preus i les tarifes són l’actiu més valuós de qualsevol negoci de comerç electrònic o viatges. No obstant això, la competència deslleial utilitza bots cada cop més sofisticats per extreure aquestes dades en temps real, rotant adreces IP de centres de dades, VPNs i proxies residencials. Aturar-los no és qüestió d’un sol filtre, sinó d’una estratègia en capes on la primera i més econòmica és l’avaluació de la IP. En aquest article explorem com implementar un middleware de puntuació d’IP en Node.js que permeti classificar cada sol·licitud i decidir si servir, alentir, desafiar o bloquejar, sense perdre de vista les seves limitacions.
L’amenaça dels scrapers de preus no és nova, però la seva sofisticació sí. Un bot competidor pot extreure tota la teva taula de tarifes en el mateix temps que un client real triga a triar un seient. Ho fa consultant la mateixa ruta de cerca cada pocs segons, llegint els teus preus i, una hora després, infravalorant-los en un comparador. Bloquejar-lo és difícil perquè el trànsit no prové d’una sola màquina, sinó de milers d’IPs residencials autèntiques que roten constantment. Aquest article se centra en la primera línia de defensa: puntuar cada IP entrant abans que toqui el teu catàleg.
L’enfocament consisteix a construir middleware que detecti trànsit de centres de dades, VPNs i proxies residencials, assigni una puntuació de risc de 0 a 100 i decideixi l’acció. La clau és no tractar la detecció com un booleà màgic, sinó com un gradient. Un mateix IP pot tenir flags com is_residential_proxy, is_cloud_provider o is_vpn, i la resposta ha de ser esglaonada: per exemple, un bloqueig per a puntuacions superiors a 80, un desafiament (CAPTCHA) per a les que superin 45, i només monitoratge per a les mitjanes. Aquesta granularitat evita falsos positius costosos, com bloquejar un client real que utilitza una VPN corporativa.
A Q2BSTUDIO, com a empresa de desenvolupament d’aplicacions a mida, sabem que la ciberseguretat no pot ser un últim moment. Per això dissenyem solucions modulars on la capa d’IP és només l’inici. Un middleware ben implementat en Node.js, amb emmagatzematge en memòria cau a Redis i temps d’espera controlats, pot processar milions de sol·licituds sense afectar l’experiència de l’usuari. A més, combinem aquesta defensa amb intel·ligència artificial per analitzar patrons de comportament, i amb serveis cloud d’AWS o Azure per escalar sense preocupacions. El nostre equip també integra eines de BI com Power BI per monitoritzar en temps real el trànsit i ajustar llindars.
El middleware que proposem segueix una arquitectura senzilla: una funció scoreIp consulta una API externa (com ipgeolocation.io) amb timeout d’1.5 segons i falla obert (si el servei no respon, es permet el trànsit per no paralitzar el lloc). Després, la funció decideAction interpreta la puntuació i els flags per retornar 'allow', 'monitor', 'challenge' o 'block'. Aquesta decisió s’emmagatzema en memòria cau durant sis hores, evitant consultes repetitives que encareixen i alenteixen. En un lloc de tarifes aèries, per exemple, un IP d’un proxy comercial conegut (com Zyte Proxy) amb puntuació 80 rep un bloqueig directe a l’endpoint /api/fares, mentre que una VPN d’ús comú (NordVPN) amb puntuació 60 només rep un desafiament al checkout.
Però la capa IP no és suficient. Els scrapers més avançats utilitzen xarxes de proxies residencials que semblen ISP reals. Aquí és on entra la segona capa: limitació de taxa basada en ASN (l’operador de xarxa), no en IP individual. Com que els atacants roten centenars d’IPs dins del mateix ASN, limitar per ASN talla aquest moviment. A més, afegim senyals de comportament com la cadència de peticions i honeypots: enllaços invisibles per a humans que tot bot segueix. Si un bot cau al parany, es registra la seva IP i s’afegeix a una llista negra local. A Q2BSTUDIO desenvolupem agents d’IA que aprenen d’aquests patrons per ajustar dinàmicament els llindars, oferint una protecció adaptativa que no existeix en solucions estàtiques.
La implementació en Node.js requereix gestionar correctament la IP del client darrere de proxies o CDNs. Configurar app.set('trust proxy', 1) i utilitzar req.ip evita que puntuem la IP del nostre propi balancejador. L’emmagatzematge en memòria cau amb Redis és vital per no disparar els costos d’API: una TTL de 6 hores és un bon equilibri. Per a IPv6, cal puntuar sobre el prefix /64, no sobre l’adreça completa, perquè un sol subscriptor pot tenir bilions d’adreces. I per descomptat, cal respectar el GDPR: les IPs són dades personals, així que estableix polítiques de retenció i finalitat.
Aquest enfocament per capes és el mateix que apliquem als nostres projectes de ciberseguretat per a clients del sector turístic i retail. Comencem amb la capa IP, que elimina el 80% del trànsit maliciós (scrapers massius des d’AWS o Hetzner), i després afegim limitació de taxa i anàlisi conductual. En alguns casos, integrem serveis cloud d’Azure per al processament en temps real i Power BI per a la visualització d’amenaces. La clau és no confiar en un únic senyal: ni el bloqueig per IP, ni l’user-agent, ni el rate limiting funcionen sols. La combinació és el que marca la diferència.
Per acabar, recordem que la detecció sense registre és una conjectura. Cada decisió de bloqueig, desafiament o monitoratge ha de quedar registrada amb la IP, la puntuació, els flags i l’endpoint. Al cap d’una setmana podràs ajustar els llindars al teu trànsit real, reduint falsos positius i millorant la precisió. Eines com els agents d’IA que desenvolupem a Q2BSTUDIO poden automatitzar aquest ajust, aprenent dels patrons dels teus visitants legítims i dels atacants. En última instància, la capa d’IP és el sòl, no el sostre: un primer pas sòlid i econòmic que qualsevol negoci amb catàleg online hauria d’implementar.





