Dynamické generování stránky v PHP
Napsal: úte 7. dub 2009, 18:22
Zdravím, nyní používám na stránkách http://vydelek-klikacky.ic.cz pro generování obsahu na stránce skript s MySQL DB:
http://interval.cz/clanky/dynamicke-gen ... anky-v-php
Po mírné úpravě vypadá můj skript, který používám, takto:
a návrh tabulky MySQL:
Je toto řešení vhodné, bezpečné, odolá v pořádku PHP include i MySQL injection?
Není někde nějaká chyba? Je vhodná nějaká jeho úprava nebo nějaké doplnění?
Je vlastně celá stránka dobře zabezpečena? (proti PHP include a MySQL injection)
PS: Chci zůstat u nějakého řešení s MySQL DB.
A ještě, je dobře řešen titulek stránky?
Prosím o názory a rady, na prvním místě mi jde o zabezpečení (případně co dodělat, ...) proti všem možným útokům (PHP include, MySQL injection, ...).
Díkes.
http://interval.cz/clanky/dynamicke-gen ... anky-v-php
Po mírné úpravě vypadá můj skript, který používám, takto:
Kód: Vybrat vše
<?
$kod = "xxxx"; // Napíšeme bezpečnostní kód
if(IsSet($_GET['strana'])): // Ověříme, jestlie existuje proměnná $strana
MySQL_Connect("xxx", "xxx", "xxx"); // Připojíme se k databázi
MySQL_Select_DB("xxx"); // Vybereme databázi
$vysledek = MySQL_Query("SELECT url FROM strany WHERE id = '$_GET[strana]'"); // Napíšeme SQL příkaz
if(MySQL_NumRows($vysledek) == 1):
$url = MySQL_Result($vysledek, 0, "url"); // Adresu z databáze zapíšeme do proměnné $url
else:
$url = "404.php"; // Pokuď záznam nebyl nalezený, tak do proměnné $url vložíme jinou stránku, např. upozornění na chybu
endif;
else:
$url = "uvod.php"; // V případě, ze neexistuje poměnná $strana, vložíme do $url hlavní stránku
endif; // Ukončíme první podmínku
require $url; // Vygenerujeme stránku
?>Kód: Vybrat vše
create table strany(
name varchar(50) not null,
id varchar(20) not null,
url varchar(255) not null,
description varchar(255),
PRIMARY KEY(name,id,url));Není někde nějaká chyba? Je vhodná nějaká jeho úprava nebo nějaké doplnění?
Je vlastně celá stránka dobře zabezpečena? (proti PHP include a MySQL injection)
PS: Chci zůstat u nějakého řešení s MySQL DB.
A ještě, je dobře řešen titulek stránky?
Kód: Vybrat vše
<title><?
switch ($_GET['strana']):
case "uvod": echo "Úvod"; break;
case "penezenky": echo "Elektronické peněženky"; break;
case "neobux": echo "NeoBux"; break;
case "scam": echo "SCAM list"; break;
case "zkusenosti": echo "Zkušenosti"; break;
case "kontakt": echo "Kontakt"; break;
case "odkazy": echo "Odkazy"; break;
default: echo "Výdělek na internetu - klikačky";
endswitch;
?></title>Díkes.