PHP külső hivatkozásokat ne tudja a felhasználó elérni?
index.php -ban létrehozol egy belső változót amit a felhasználó sehogy nem tud megadni.
pl. $_SERVER['SITE'] = true;
Minden olyan PHP fájlnál amit meghívsz az elejébe teszel egy vizsgálatot.
pl. if(!$_SERVER['SITE']) { exit(); }
Így csak azt fogja elérni ami az index.php -n keresztül van meghívva.
én ezt úgy oldottam meg, (nem ebből a célból, inkább azért hogy több oldal tudja a használni ugyanazokat az osztályokat! :)
hogy van egy gyökérmappám, mondjuk "/root"
a php osztályok elérése: /root/class/classname.php
az oldal elérése, /root/sitename/index.php
a www.sitename.hu közvetlenül a /root/sitename/ mappára mutat, amiben 3 php file van, az egyik az index.php, a másik az elérési utakat tartalmazza a szerveren, a harmadik meg az adatbáziskapcsolat adatait. És ennyi. így nem kell minden php-ban megvizsgálni a fenti feltételt. Persze ez a megoldás még nem tudom hogy mennyire biztos, csak most éppen itt tartok. :)
#3 meg vannak az előnyei, de átlagos web tárhelynél nem igen valósítható meg.
.htaccess -el is lelehet tiltani ahogy az előttem említette.
Ennek is meg van a maga előnye, mert általánosságban le lehet tiltani egy teljes mappa elérését.
persze ez megint azt hozza, hogy szerver beállítás függő, hogy szegény emberkének engedik -e a .htaccess -es konfigurálást.
Ezért javasoltam a fenti PHP -s megoldás.
Igaz minden fájl elején le kell vizsgálni, de biztos minden szerveren menni fog ahol php -van, függetlenül hogy engednek -e olyan mappákat amik webroot alatt van, vagy .htaccess -t esetleg apache/nginx/lighttpd...
Kapcsolódó kérdések:
Minden jog fenntartva © 2024, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!