
změna proměné v php přes odkaz ?
Potřeboval bych poradit se syntaxí PHP.
Tohle bych chtel použít do menu:
<a href="index.php?p=stranajedna">prvni strana</a>
do čeho mam vložit obsah strany jedna aby se mi pak zobrazil v <?php $obsah=""; include "nevim co, asi.php(txt)";?>
Problem je v tom že nevim jak změnit proměnout toho include na jinou, odkazem.
EDIT: v tutorialech sem to nenašel už to hledám dva dny
Ehm, trochu nechápu.
Pokud by platilo
Tak k proměnné stranajedna se dostaneš metodou $_GET
A pokud obsah stránky budeš mít uložený např. v souboru stranajedna.txt, tak stačí includovat
Samozřejmě je potřeba ošetřit obsah proměnných atd...
ano to by malo fungovat ale to co pises je IMHO bezpecnostna diera jak hovado. :) (myslim ze pomocou index.php?p=cokolvek.cokolvek%00 by si si mohol dat vypisat akykolvek subor severa (ale nie som si isty nechce sa mi to testovat), aj v inych nad/adresaroch (pomocou ..\inyadresar\ )
Co není jasné na této větě?
Aha jak to teda ošetřit ?
Vždy musíš otestovat, co proměnná obsahuje - jinými slovy jestli obsahuje vůbec něco a pokud ano, tak jestli to je to, co to má být.
Také ověřit, jestli v obsahu proměnné nejsou nějaké nepovolené znaky, jestli není obsah moc dlouhý atp...
Asi není v mých silách tě to tady naučit, od toho jsou jiné stránky. Když budeš mít konkrétní problém nebo otázku, tak se ptej.
http://pandora.idnes.cz/part/2004/2/21141/3/24-PHP- chyby-v-php.DOC
php-kontrola-chyb
kontrola-chyb.php
a tak dále...
Jaj som si nevsimol
Myslis ze toho bude dotazovatel schopny? :)
Tak se kdyžtak zeptá. Nechtěl jsem mu zatěžovat hlavu víc než je nutný, tak jsem se snažil odpovědět jen na to, co se ptal.
Imho by měla být poslední věta alespon tučně, protože takhle si to koleduje o soubor zz.php.txt, coz jsi na to jake je to bezpecnostni riziko, zduraznil imho malo.
menu.php:
index.php:
Jedno z mnoha řešení, jak to naprogramovat
Když napíšu do prohlížeče tohle, co se stane?
Nebo jen zkráceně
Tak se tam přidá ošetření, že pokud je na začátku http:// nebo www nebo jenom www. , tak se to neotevře a na to blablabla bude stačit if(is_file([tahovadinacotamzadaclovek].php))
Ja by som odtial vyhodil vsetky znaky ktore nemozu byt v nazve suboru ( znaky : / . atd) myslim ze php ma na to funkciu.
Porovnavanie nejakeho http na zaciatku imho nie je dostatocne bezpecne.
Že mám chuť pomáhat, tak takový malý ošetření teda udělám
:
btw pak mi dej odkaz na ten web, nějak to obejdu a pošlu ti tam kouzelnej skriptík s obsahem
Když to má teda taková bezpečnostní rizika, nechci aby někdo uplně jednoduše procházel obsah serveru.
Myslel sem že by to šlo takhle pěkně udělat, potřeboval bych poradit v tom jak v layoutu stránek udělat menu které by měnilo jen obsah aby se nenačítal layout pořád dokola.
Nemá to nějaká velká bezpečnostní rizika, pokud to dobře uděláš, duležité je "nefláknout" do funkce include
proměnnou, kterou nějakým zpusobem nekontroluješ (tedy jestli patri do tech co znas ci jestli NENIz ciziho webu)
protoze v opacnem pripade ti do www.xx.com pripise nekdo neco jako http://www.xx.com?stranka=http://www.jehostranka.co m/osklivy_kod_v_php a to se vlozi do include a interpretuje PHP. a to uz je pruser. Tedy riziko neni udelat to timto zpusobem, riziko je udelat to blbe timto zpusobem. Tedy nedávat do include to co mohl zadat uzivatel a nevis o tom, ze je to neskodlive.. jak se to osetri v tom mas volne ruce.
jo a neodpovedl jsem vubec na tu citaci - s prochazenim serveru to ma spolecne jen malo - tedy utocnik (vyse uvedeny problem) by klidne mohl podstrcit tam svuj script na vypis souboru, jiank prochazeni adreasru je nastaveni apache a pripadne (ne)existence index.htm/html/php/jsp defalut.asp...
takze by to stacilo udelat tak jak psal marekdrtic ?
šlo by to napsat takhle ?
popřípadě jak to opravit, co dopsat, aby nebylo bezpecnostni riziko ?
to je z bezpecnostneho hladiska samozrejme najlepsie co moze byt (akurat to nie je univerzalne - budes to menit furt ked pridas nejaku dalsiu stranku), ale mas to zle, a robis to zbytocne zlozito. Ak ti to staci tak ako si nacrtol, tak:
Netestoval som ale snad tam nie su ziadne synakticke chyby
Mě to takhle stačí, menu nebudu měnit často, a přidání pár položek mě nazabije.
Děkuju za radu vyzkouším to.