Portál AbcLinuxu, 11. května 2025 04:27
Řešení dotazu:
který vůbec není namapován na URLCo tím je přesně myšleno?
Mít ve veřejně dostupných adresářích pomocné PHP soubory, které něco vykonají, je fatální pitomost.Tak čistě mezi námi, pokud se jedná o web a ne o haldu CGI skriptů, tak je pitomost mít v cestě vůbec nějaké PHP soubory. Do toho, zda je web napsaný v PHP nebo Abrakadabra uživatelům nic není a to, že to vidí na první pohled je pro ně zcela nadbytečná informace. Že se PHP historicky používalo jako halda CGI skriptů a že se v tom začaly psát větší webové aplikace a ještě se obojí zkombinovalo je jen shoda blbých náhod.
exit()
):if((!isset($glb_import))||($glb_import != 78951245)) exit();
Bod 1. Nedovolí nic vykonat klientem (a nedovolí include-ovat), pokud neznáš vstupní kód. Zatížení programátora je to jen v tom, že si to musíš hodit do šablony (to je zadarmo) a někde na začátku před použitím definovat variablu s pin-em (to je jen několik případů, nebo dokonce jen jeden. Je to hromadně měnitelné i odstranitelné, tak bych to tak černě neviděl.
Bod 2. Nic to nestojí a někam to přeneseš a náhodou není povolen .htaccess, tak to klade aspoň překážku adresář vylistovat při obvyklém nastavení web serveru.
PS: Některé distribuce mají default konfiguraci bez možnosti overwrite a .htaccess se neuplatňuje, a když pro to můžu něco, byť obskurně udělat, proč ne…
Proč bych se měl při každém otevření skriptu editorem koukat na takovou hrůzu?Však se nedívej, nebo si ji přepiš hezčeji, nebo… ;)
Samozřejmě je vždy nutné si tyto informace zjistit předem.Ne každý to udělá s různých důvodů, a je na tvůrci, jestli přidá nějaké další prvky.
Všechny skripty na webserveru (kromě index.php) mám udělány jako samostatné třídy. Žádný jiný kód v nich nemám.Ty ne, ale dotaz zněl jinak.
Jediným vstupním bodem do aplikace je index.php - zabezpečení webu tedy není roztříštěno po celé aplikaci.Vidíš, takže obstrukce se zapíše jen jednou. …já jich mám obvykle několik málo ks víc než jeden.
Databázi je dobré u Apache zajistit '.ht' na začátku jejího názvu - nedá se pak stáhnout.Ha, to je ale velmi podobný princip obstrukce (čisté je: explicitně nedovolit daný soubor či adresář).
Ha, nachytal jsi mě. V tomhle případě někdy používám kšandy a/nebo pásek. Některé databáze (read-only) dávám do kořene a jejich název začíná '.ht'. Databáze R/W dávám do samostatného adresáře kvůli detailnímu nastavení práv. Přístup do tohoto adresáře pak v .htaccess samozřejmě nepovolím. Vždycky se snažím tyto mechanismy dělat co nejjednodušší, abych si v nich neudělal díru do systému. Jednodušší systém se udržuje mnohem lépe. Někdy ještě dělávám do dalšího adresáře honeypot, povolím ho v .htaccess a zakážu do něj přístup přes robots.txt. To se pak člověk dozví věcíDatabázi je dobré u Apache zajistit '.ht' na začátku jejího názvu - nedá se pak stáhnout.Ha, to je ale velmi podobný princip obstrukce (čisté je: explicitně nedovolit daný soubor či adresář).
Databázi je dobré u Apache zajistit '.ht' na začátku jejího názvu - nedá se pak stáhnout.Tak ideální je ji dostat mimo dosah, že, protože .ht je hack specifický pro Apache.
.ht
je zajímavý pouze pro hostování nad Apachem bez .htaccess
, popřípadě jiným webserverem, který .ht
pro jistotu blokuje.
Je otázka, zda pak není vhodnější dostupnost onoho souboru testovat při instalaci (a konfiguraci) než spoléhat na nějaký statisticky relativně neúspěšný hack a nechat administrátora, ať v případě non-Apache/non-htaccess instalace soubor zajistí jinak.
Tiskni
Sdílej:
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.