Autor | Zpráva | ||
---|---|---|---|
Marschmallow Profil |
Dobrý den,
jak bych mohl vstup na jednu stránku povolit jen vybraným IP adresám? Příklad: 1.) Na stránku vstup.php vejde návštěvník 1 s povolenou IP adresou (nejlépe v .txt souboru) a zobrazí se mu obsah 2.) Na stránku vstup.php vejde návštěvník 2, který IP adresu nemá nikde vedenou (na serveru) a zobrazí se mu buď text "Přístup odepřen", nebo chybová hláška, že stránka neexistuje. Nevíte někdo jak na to? Nebo spíše neznáte někdo nějakou www stránku? Tedy jestli je to vůbec realizovatelné. Děkuji předem :) |
||
okolojsoucí Profil |
#2 · Zasláno: 17. 1. 2014, 16:41:29
Možná tam bude chyba, psal jsem to z hlavy
function isIPBlocked($document){ if(file_exists($document)){ $ip = $_SERVER['REMOTE_ADDR']; $file = file($document); foreach($file as $line){ if($ip == $line){ return true; break; } } return false; }else{ return false; } } if(isIPBlocked('blokace.txt')){ exit('Vase IP ma zde zakaz!'); } |
||
Orkee Profil |
#3 · Zasláno: 17. 1. 2014, 16:43:01
Marschmallow:
Ahoj, Nejednodušší příklad je nepustit nezvané vůbec. Pro apache server stačí přidat do .htaccess souboru: deny from all allow from x.x.x.x allow from y.y.y.y Nezvaný uživatel obdrží chybu 403. více třeba zde: Soubor .htaccess Další možností je použít nějaký server-side jazyk, který rozhodne podle ip. např v php: $seznam=array("1.2.3.4","2.3.4.5"); if(in_array($_SERVER['REMOTE_ADDR'],$seznam)){ echo "Přístup povolen"; } else Location("odkážeš ho pryč");//popř vyhodíš chybu |
||
okolojsoucí Profil |
Orkee:
„Pro apache server stačí přidat do .htaccess souboru:“ Nepřichází v úvahu pokud těch lidí bude dejme tomu 200 tak se stránka bude načítat cca 5s než vůbec Apache projede celý htaccess. „Další možností je použít nějaký server-side jazyk, který rozhodne podle ip. např v php:“ Nepřichází v úvahu, co když těch lidí bude 200? To bude pěkný guláš v tom array. Nejlepší možností je to dělat přes externí soubor (txt) nebo přes databázi kde se výrazně lépe hledá. Vkládej prosím kódy mezi značky a (stačí kliknout na ![]() |
||
Orkee Profil |
#5 · Zasláno: 17. 1. 2014, 16:55:05
okolojsoucí:
Samozřejmě záleží na účelu aplikace. Než však ukazovat jedno konkrétní řešení problému je podle mne lepší ukázat možnosti. Co když to bude chtít psát v ruby? Pokud chce mít statickou html stránku pro 3 lidi není důležité se učit php a může využít htaccess. |
||
okolojsoucí Profil |
#6 · Zasláno: 17. 1. 2014, 16:58:23
Orkee:
„Co když to bude chtít psát v ruby“ To by napsal, a předpokládejme že když jeho soubor má koncovku .php tak to bude php. Pokud htaccess není dobře optimalizovaný na webu to spíše pak škodí. |
||
JanK Profil * |
#7 · Zasláno: 18. 1. 2014, 11:37:38
pro htaccess není problém zpracovávat několik tisíc záznamů aniž by šlo zpozdění změřit. Několik stovek je lahoda. u Pár desítek tisíc už by muselo dojít k nějakému měření.
Doporučuji použít htaccess, adresy jsou skoro jak v textovém souboru a je možné si je jednoduše pomocí komentářů pojmenovat a rozčlenit. V txt souboru to možné není nebo bys musel dělat složitější parser deny from all allow from 192.168.1.1 #soused allow from 192.168.1.1 #sousedka # ostatní stránky na serveru allow from 10.0/255.255.0.0 #firma od naproti allow from 193.10.123.1 allow from 193.10.123.5 allow from 193.10.123.7 |
||
juriad Profil |
#8 · Zasláno: 18. 1. 2014, 11:50:34
okolojsoucí:
Pokud zabezpečenou stránku dá do vlastního adresáře, může .htaccess být na úrovni toho adresáře. V takovém případě nebude ovlivňovat zbylé stránky a většinu návštěvníků. Použitím .htaccess se navíc ušetří výkon, neboť se nemusí „startovat“ PHP. |
||
jenikkozak Profil |
#9 · Zasláno: 18. 1. 2014, 12:33:03
okolojsoucí:
„Nepřichází v úvahu pokud těch lidí bude dejme tomu 200 tak se stránka bude načítat cca 5s než vůbec Apache projede celý htaccess.“ S pětkou souhlasím. Ale sekl ses minimálně o čtyři řády. „Nepřichází v úvahu, co když těch lidí bude 200? To bude pěkný guláš v tom array.“ Nechápu, proč by v něm měl být guláš, zatímco v externím souboru ne. |
||
Časová prodleva: 11 let
|
0