Jak chránit webové stránky před Web/AI Scrapingem

27. listopadu 2024

Škodliví boti, kteří ignorují pravidla jako robots.txt, mohou narušit provoz vašeho webu. Můžete se potýkat s přetížením serveru, skenováním zranitelností, nebo dokonce s pokusy o zneužití vašich dat. Stahování informací z webů a jejich následné zpracování může také porušovat autorská práva nebo GDPR. Tento článek shrnuje systematické metody, jak efektivně blokovat boty pomocí různých technologií a chránit se tak před Web Scrapingem (a AI Scrapingem). 

Základní pravidla blokace

Blokování škodlivých botů je klíčovou součástí ochrany webových aplikací a dat. Aby byla účinná, je nutné správně identifikovat podezřelé aktivity a pochopit, co odlišuje škodlivé boty od běžných uživatelů.

Nejprve identifikujte škodlivé boty:
– Sledujte logy serveru (např. access.log) pro neobvyklé vzory přístupů.
– Zaměřte se na User-Agenty, IP adresy nebo vzory chování.

Typické známky škodlivých botů:
– Rychlé přístupy k velkému množství stránek.
– Přístupy z neobvyklých regionů nebo bez hlavičky User-Agent.

User-Agent je řetězec, který odesílá každý prohlížeč, aplikace nebo bot při komunikaci se serverem. Tento řetězec identifikuje software, zařízení a operační systém, které požadavek odesílají. Servery mohou na základě User-Agentu přizpůsobit obsah nebo blokovat nechtěné přístupy (např. škodlivé boty).

Blokace pomocí .htaccess (webhosting/server)

Soubor .htaccess je jedním z nejúčinnějších nástrojů pro správu přístupů na úrovni Apache serveru. Umožňuje nastavovat pravidla, která kontrolují přístupové požadavky na váš web, aniž by bylo nutné přímo zasahovat do hlavní konfigurace serveru. Díky tomu je vhodný pro zkušené administrátory i uživatele hostingu s omezenými právy. 

  • Blokovat známé škodlivé boty pomocí jejich User-Agent identifikace.
  • Omezit přístupy z konkrétních IP adres nebo podsítí.
  • Odmítnout požadavky bez základních hlaviček, které jsou typické pro škodlivé skripty.

V následujících příkladech si ukážeme, jak nastavit základní pravidla blokace, která můžete snadno upravit podle vašich konkrétních potřeb. Správné použití těchto pravidel vám umožní zvýšit bezpečnost vašeho webu a omezit nežádoucí zatížení serveru.

 Blokování na základě User-Agent:

RewriteEngine On
RewriteCond %{HTTP_USER_AGENT} (BadBot|EvilScraper|SpamBot) [NC]
RewriteRule .* - [F,L]

Příkladem robota, který můžete chtít takto zablokovat, je ten od společnosti Meta, která otevřeně píše, že jejich roboti mohou ignorovat obsah robots.txt. V tomto konkrétním případě případě stačí do .htaccess na začátek přidat: 

# blokovani spatnych robotu

<IfModule mod_rewrite.c>

RewriteEngine On

RewriteCond %{HTTP_USER_AGENT} (Bytespider|ClaudeBot|facebookexternalhit|meta-externalagent) [NC]

RewriteRule (.*) - [F,L]

</IfModule>

Blokování konkrétních IP adres:

<RequireAll>
Require all granted
Require not ip 192.168.1.100
Require not ip 203.0.113.0/24
</RequireAll>

Blokace bez hlavičky User-Agent:

RewriteCond %{HTTP_USER_AGENT} ^-?$
RewriteRule .* - [F,L]

Blokace pomocí web.config (webhosting/server)

Pro webové servery běžící na technologii Microsoft IIS je soubor web.config klíčovým nástrojem pro řízení přístupu a konfiguraci pravidel. Umožňuje administrátorům nastavit specifická pravidla pro blokování škodlivých botů, omezení přístupů z podezřelých IP adres nebo přizpůsobení provozu na základě různých podmínek.

Tento přístup je ideální pro prostředí s Windows Serverem, kde máte plnou kontrolu nad serverem a možnost nasadit komplexní pravidla. Níže uvádíme dvě klíčové metody blokace, které můžete snadno implementovat:

Blokování User-Agent:

<configuration>
  <system.webServer>
<rewrite>
  <rules>
    <rule name="BlockBadBots" stopProcessing="true">
      <match url=".*" />
      <conditions>
        <add input="{HTTP_USER_AGENT}" pattern="BadBot|EvilScraper|SpamBot" />
      </conditions>
      <action type="AbortRequest" />
    </rule>
  </rules>
</rewrite>
  </system.webServer>
</configuration>

 Blokování podle IP adres:

<configuration>
  <system.webServer>
<security>
  <ipSecurity allowUnlisted="true">
    <add ipAddress="192.168.1.100" allowed="false" />
    <add ipAddress="203.0.113.0" subnetMask="255.255.255.0" allowed="false" />
  </ipSecurity>
</security>
  </system.webServer>
</configuration>

Pokročilé metody ochrany

Použití JavaScriptu a CAPTCHA na úrovni aplikace

Proti sofistikovanějším botům, kteří dokážou obejít základní pravidla blokace, je nezbytné nasadit pokročilé metody ochrany. Tyto techniky využívají vlastnosti, které boti obvykle nedokáží napodobit, jako je interpretace JavaScriptu nebo řešení CAPTCHA. Aplikace těchto metod poskytuje silnou druhou linii obrany a minimalizuje riziko úspěšného útoku.

JavaScript kontrola:

<script>
  if (!navigator.userAgent || navigator.userAgent === '') {
window.location = "/access-denied.html";
  }
</script>

 CAPTCHA:

Google reCAPTCHA nebo jiné služby přidávají ochrannou vrstvu na formuláře a přihlašovací stránky.

Honeypot pasti na úrovni aplikace

Honeypot pasti jsou efektivním způsobem, jak odhalit a blokovat škodlivé boty. Jedná se o skryté odkazy nebo formulářová pole, která běžní uživatelé nikdy nevidí ani nevyplní, ale automatizované systémy, jako jsou boti, je často aktivují. Když bot tento prvek vyplní nebo navštíví, server si jeho chování zaznamená a můžete takovou IP adresu automaticky zablokovat.

 Příklad honeypotu:

  1. Vytvořte stránku /trap.html.
  2. Přidejte do HTML skrytý odkaz:
    <a href="/trap.html" style="display:none;">Hidden Link</a>
  3. Monitorujte přístupy na tuto stránku a blokujte podezřelé IP adresy.

Blokace na úrovni serveru 

Pokud pravidla na úrovni aplikace nestačí, můžete přistoupit k blokaci na úrovni samotného operačního systému. Tato metoda je obzvláště účinná pro servery s vysokým provozem nebo pro případy, kdy chcete minimalizovat náklady na zpracování škodlivých požadavků přímo v aplikaci.

Blokování na úrovni serveru funguje tak, že nežádoucí provoz je eliminován ještě předtím, než dosáhne webové aplikace. Tím se snižuje zátěž serveru a zvyšuje jeho celková výkonnost.

Blokování IP adres přes IPTables (Linux):

Blokování jedné IP adresy:
sudo iptables -A INPUT -s 192.168.1.100 -j DROP

Blokování celé podsítě:

sudo iptables -A INPUT -s 203.0.113.0/24 -j DROP

Automatická ochrana s Fail2Ban:

Fail2Ban je výkonný open-source nástroj pro zabezpečení serverů, který automaticky monitoruje logy, identifikuje podezřelé aktivity a blokuje IP adresy, které vykazují nebezpečné chování. Typicky se používá k ochraně proti útokům typu brute force, přetížení serveru a dalším neautorizovaným přístupům.

Fungování Fail2Ban je jednoduché, ale účinné: při detekci opakovaných neúspěšných pokusů o přihlášení nebo jiných podezřelých aktivit dočasně nebo trvale blokuje IP adresu útočníka na firewallu. Administrátor má možnost nastavit různé filtry a akce na míru pro konkrétní služby, jako jsou SSH, FTP nebo webové servery.

Dynamická ochrana a behaviorální analýza

Někteří boti se snaží napodobovat lidské chování. Pro jejich detekci jsou vhodné nástroje využívající strojové učení a analýzu provozu, například:

  • Behaviorální analýza: Sleduje počet požadavků z jedné IP adresy nebo další neobvyklé aktivity.
  • Rate Limiting: Omezuje počet požadavků z jedné IP adresy během stanoveného časového intervalu.

Kombinace metod pro maximální ochranu

Pro dosažení maximální ochrany doporučujeme kombinovat více metod:

  1. Pravidla v .htaccess nebo web.config.
  2. CAPTCHA a JavaScript testy.
  3. Blokace na úrovni serveru (např. IPTables nebo WAF).
  4. Behaviorální analýza a monitoring.

Pravidelně kontrolujte přístupové logy a aktualizujte ochranu podle nových hrozeb

Chcete-li mít jistotu, že váš web zůstane chráněný, a hledáte stabilní hosting s podporou, CZECHIA.COM je ideální volbou. Poskytujeme spolehlivé hostingové služby a praktické návody, které vám pomohou efektivně zabezpečit vaše stránky proti nežádoucím přístupům. S naší podporou můžete spravovat bezpečnost svého webu snadno a efektivně, zatímco se můžete plně soustředit na jeho rozvoj. Navštivte nás a zjistěte více o tom, jak vám můžeme pomoci.

Vojtěch Tomášek

Jsem redaktor se zájmem o technologie, grafický design a IT. Je pro mě klíčová zpětná vazba a podněty od čtenářů. Chci tak tvořit obsah, který nejen informuje, ale také inspiruje a obohacuje. Od dokončení vysoké školy se věnuji převážně grafice a IT. Když zrovna nejsem v redakci Intervalu, jsem v přírodě nebo se právě snažím dokončit quest v nejnovějším Zaklínači.

Mohlo by vás také zajímat

Nejnovější

Napsat komentář

Vaše e-mailová adresa nebude zveřejněna. Vyžadované informace jsou označeny *