ASP tip: Jak omezit přístup z určitých IP adres?

V praxi může velmi snadno nastat situace, že budete chtít umožnit přístup k některým stránkám podle IP adresy – například administrativní stránky vašeho webu mají být přístupné pouze z vnitřní sítě a podobně.
V praxi může velmi snadno nastat situace, že budete chtít umožnit přístup k některým stránkám podle IP adresy – například administrativní stránky vašeho webu mají být přístupné pouze z vnitřní sítě a podobně.

Nastavení WWW serveru
MS IIS 4.0 umožňuje nastavit omezení přístupu podle IP v nastavení WWW serveru. Spusťte si Microsoft Management Consoli s IIS, vyberte patřičný web a po klepnutí pravým tlačítkem zvolte Vlastnosti. Na záložce Directory security klepněte na Edit… v sekci IP Address and Domain Name Restrictions. Objeví se následující okno:

Pokud je nastaveno “Granted Access”, je obecně přístup povolen, s výjimkou počítačů uvedených v seznamu níže. Je-li nastaveno “Denied Access”, je obecně přístup zakázán, s výjimkou počítačů vypsaných níže. Na příkladu na obrázku je web otevřený pro kohokoliv, kromě počítače s IP 147.251.48.1.

Pokud se uživatel z tohoto počítače pokusí podívat na stránky na daném serveru, objeví se mu jenom chybové hlášení 403.6 (Forbidden) – IP address rejected.

S výhodou můžete tohoto využít, pokud nastavíte “Denied Access” pro všechny počítače, s výjimkou počítače s adresou 127.0.0.1. Tato IP patří počítači “LOCALHOST”, což je počítač, na kterém běží ten který server. To znamená, že na – například důležité administrativní – stránky se nedostane nikdo, kdo nesedí přímo u serveru.

Použití Active Server Pages
Může nastat situace, kdy výše uvedené řešení nelze použít. Například proto, že seznam povolených/zakázaných IP má být generován z databáze, nebo proto, že uvedená metoda vyžaduje spolupráci správce WWW serveru.

Pokud máte možnost použít ASP, můžete si pomoci svépomocí. V serverové proměnné REMOTE_ADDR se ukládá IP adresa hosta. Pokud tedy chcete odříznout uživatele již zmíněného počítače 147.251.48.1, uděláte to tím, že na začátek skriptu (tedy ještě před tím, než cokoliv zapíšete na výstup pomocí Response.Write nebo klasicky zapsaného HTML) vložíte řádek

<%If Request.ServerVariables("REMOTE ADDR") = "147.251.48.1" Then Response.Redirect "denied.htm"%>
  
Uživatel se zmíněnou IP bude odvržen na stránku denied.htm, kde ho může čekat chybové hlášení podle vaší fantazie.

Jistě přijdete i na další způsoby využití faktu, že znáte IP adresu vašeho návštěvníka.
  

Váš názor Další článek: Druhá firma zavádí v USA internetový paušál

Témata článku: Software, Programování, Přístup, Adresa, Access, Patřičný web

Určitě si přečtěte


Aktuální číslo časopisu Computer

Zachraňte nefunkční Windows

Jak nakupovat a prodávat kryptoměny

Otestovali jsme konvertibilní notebooky

Velký test 14 herních myší