Autor | Zpráva | ||
---|---|---|---|
Ratio Profil * |
Dobrý, začinám programovat v PHP a potřebuju poradit s odkazem a zpracováním odkazu typu <a href="index.php?stranka=page">.
v index .php se to snažím spracovat následovně: $stranka = $_get["stranka"]; if (isset($stranka)) { include $stranka.".inc";} else { inlcude "index.inc"; } před i po tomto kodu jsou dalsi includy, jakou dělám chybu? díky moc za pomoc Moderátor Majkl578: Vkládej prosím kódy mezi značky [pre] a [/pre] (stačí kliknout na
![]() |
||
Keeehi Profil |
#2 · Zasláno: 15. 2. 2010, 20:04:54 · Upravil/a: Keeehi
Velká písmena
$stranka = $_GET["stranka"]; if (!empty($stranka)) { |
||
Ratio Profil * |
#3 · Zasláno: 15. 2. 2010, 20:40:23
aha, to mě nikdy nenepadlo, že je tak duležite, díky moc
|
||
lingvik Profil |
#4 · Zasláno: 15. 2. 2010, 21:38:16
Ratio:
Drobná rada do začátku: tento způsob includování skriptů je docela solidní bezpečnostní díra. Ještě lepší podmínka než v #2 je použít přímo whitelist. Např.: if (in_array($stranka, array('novinky', 'fotky', 'fotogalerie', 'kontakty'))) { |
||
AM_ Profil |
#5 · Zasláno: 15. 2. 2010, 22:13:30
existuje i jednodušší ochrana, např.
include 'stranky/'.preg_replace('~[^a-z0-9]~i', '', $stranka).'.inc'; A všechny inc soubory uložit do separé složky. Tím je možné vložit jen inc soubory z dané složky, útočník např. nemůže vložit absolutní URL, ale ani nic jiného potenciálně nebezpečného. A je to rychlejší, než si psát whitelist. Ještě jedna rada, includovaným souborům bych dával příponu .php; v zájmu bezpečnosti je dobré útočníkovi neumožnit, aby si zobrazil PHP kód. Pokud zadám http://example.com/stranky/ovozeaokoze.inc , prohlédnu si PHP kód v tomto souboru, pokud to bude PHP, tak se k souboru nedostanu. Nebo alespoň pomocí souboru .htaccess s obsahem deny from all zakázat přístup do adresáře /stranky/. |
||
Ratio Profil * |
#6 · Zasláno: 15. 2. 2010, 22:25:30
jeste takova otazka, nedavno jsem se ptal na tuto otazku jednoho webdesignera, a poradil mi program Nette Framework, co naněj říkate vy? mě přijde zbytečně složitý, ale možná je to jen můj názor
|
||
AM_ Profil |
#7 · Zasláno: 15. 2. 2010, 22:37:51
Ratio:
v PHP programuju pět let, teď jsem Nette začal objevovat a cítím se jak Alenka v říši divů. Pokud to chceš s PHP někam dotáhnout, Nette je poměrně robustní a mocný nástroj, ve kterém můžeš rychle a efektivně tvořit malé weby, ale i složité aplikace. Nicméně to vyžaduje studovat a pochopit principy MVP architektury a konkrétně tohoto frameworku, dokumentace bohužel stojí za kulové, takže je potřeba se hodně snažit a přečíst si, co se dá. Výsledek za to ale asi bude stát, nicméně už jsem zjistil, že za den se to naučit nedá. Pokud jsi začátečník, nejdřív bys měl pochopit objektové programování a PHP, než se pustíš do Nette. Pravdou je, že složitý je. Pokud se chystáš udělat dva weby v životě, asi se ti nette nevyplatí, ale až budeš dělat třeba pátý web a budeš pořád dokola řešit ty samé nedomyšlenosti a zdlouhavosti PHP a HTML, zjistíš, proč existují věci jako Nette. |
||
Časová prodleva: 13 let
|
0