MySQL-ből PHP kód futtatása... de hogyan?
Sziasztok!
Arra lennék kíváncsi, hogy megoldható-e egy SQL táblából PHP kód beszúrása és végrehajtása egy HTML doksiban? Az a gondom, hogy rendben kiolvassa a táblából a PHP kódot, de végrehajtás nélkül beszúrja a HTML-be. Tulajdonképpen arre keresek megoldást, hogy a szóban forgó PHP kód végrehajtásra is kerüljön.
Előre is köszönettel!
■ Arra lennék kíváncsi, hogy megoldható-e egy SQL táblából PHP kód beszúrása és végrehajtása egy HTML doksiban? Az a gondom, hogy rendben kiolvassa a táblából a PHP kódot, de végrehajtás nélkül beszúrja a HTML-be. Tulajdonképpen arre keresek megoldást, hogy a szóban forgó PHP kód végrehajtásra is kerüljön.
Előre is köszönettel!
eval()
Picit ködösen fogalmaztál... HTML szót nem tudom igazán mire vélni.
Köszönöm!
rtfm
Ezt olvasd el
Kb úgy.. (kattints ide)
Én csak akkor használnék ilyet, ha pl egy tárhelyen kvóta lenne a fájlokra, de a mysql-re nem :) Vagy valami nagyon Web2.0-ás össznépi PHP őrületet szervezel?
Biztonsági luk
Mi a célod?
A célom:
Az eval() biztonsági lyukkal tisztában vagyok, ezért is kéne valami kevésbé "drasztikus" megoldás.
Köszönöm, hogy ennyien reagáltatok rá, és igen, valóban a kezdők táborához tartozom.
Üdv.!
blokkolt tartalmak
A táblád nézzen ki így: menu_id, content, jog
Lekérés előtt állapítsd meg a user 'jogát', ami egy szám, pl 3.
És a lekérés:
Nem ez lesz a megoldás...
belépés
Amikor belépnek a megfelelő név/jelszóval, akkor küldesz egy sütit, és a $_SESSION-be felveszed az adatbázisból a névhez tartozó jogot. Minden oldallekérésnél ellenőrzöd ezt a sütit, és meglét esetén jóváhagyod a jogot. Utána a lekérdezés megy, ahogy mondtam. Ha valahol valami nemstimmel, akkor meg megsemmisíted a sütit és a megfelelő munkamenet(egy részét).
Ezekkel tisztában vagyok.
Erre keresek megoldást.
Védett include, felhasználók táblája
Tanács: Legyen egy listád a behívható PHP állományokról, és ellenőrizd, hogy a kért lap valóban szerepel-e a listádon. Ez történhet pl. egy tömb és elemének ellenőrzésével, de lehet egy switch szerkezet is. Ezzel csökkented annak esélyét, hogy egy allow_url_fopen-es szerveren külső kódot futtassanak a scriptedben.
2. Összetettebb, de lényegesen elegánsabb megoldás: Egy felhasználói tábla. Ez feltehetően hosszú távon is megéri.
Content tábla: menu_id, jog, content
User tábla: user_id, lgn_name, lgn_pass, jog
Jogok (a korábbi javaslatból kiindulva): 0 - látogató; 1 - belépett, de nem jogosult user; 2 - jogosult user; 3 - admin;
Ha a user jog >= content jog, akkor megnézheti. Ezt kapcsolt lekéréssel ellenőrizheted.
E második megoldás szintén primitív, rugalmatlan is, de a legtöbb esetben elég.
Gondold végig, mire kell majd az ellenőrzés, a jövőben nem vennéd-e hasznát egy felhasználói táblának, és így tovább... egyszóval tervezz előre. Szerintem.
PHPGACL
Data Execution Prevention...
Köszi mindenkinek!