A PHP futtatásának egyik lehetősége a CGI futtatás. Ez azt jelenti, hogy a php oldal elérésekor a webszerver meghívja a rendszeren lévő php futtatható állományt (pl. php.exe) betölti a memóriába és átadja neki a kért url-en lévő file-t.
http://valami.hu/cgi-bin/php?/valami/futtathato.exe
- Az url ? utáni része parancssori paraméterként adódik át a PHP-nak. ezt a paramétert a program általában megnyitja és végrehjatja.
http://valami.hu/cgi-bin/php?/valami/futtathato.exe - Rossz beállítások esetén a web szerver tetszőleges könyvtára elérhetővé válhat, mivel a php meghívása utáni útvonal a szerver root könyvtárától való elérési útvonal lehet.
http://valami.hu/cgi-bin/php/valami/titkos/doc.html
A fenti beállítások megoldása:
- A web szerverek default beállításai a fenti eseteket megelőzik.
- A Linuxokon az elindított alkalmazás jogosultságai a szülő alkalmazás jogosultságaival egyeznek meg, azaz az Apache vagy más webszerver jogai csak meghatározott könyvtárakra terjedjen ki.
- Használjuk a doc_root és a user_dir paramétereket
- Ne tegyük a cgi-bin könyvtáraba a PHP értelmezőt!