Stránka: 1 z 1
| [ Príspevkov: 15 ] | |
Autor | Správa |
---|
Registrovaný: 07.08.06 Prihlásený: 18.11.21 Príspevky: 947 Témy: 268 | 268 Bydlisko: Levice |
mam klasicky upload suboru Kód: <input type="file" size="20" name="xml1" /> chcel by som zamedzit tomu aby sa dali uploadnut ine typy suborov ako xml. Pri uploade obrazkov som to riesil takto Kód: if (is_uploaded_file($_FILES['foto']['tmp_name'])) {list($width, $height, $type) = getimagesize($_FILES['foto']['tmp_name']); if ($type != IMAGETYPE_JPEG){$err= 'Obrázok musí byť vo formáte JPG alebo JPEG';}
ale ako to pouzit pre xml?
|
|
Registrovaný: 11.08.07 Príspevky: 4088 Témy: 34 | 34 Bydlisko: Brno |
XML subory maju MIME typ application/xml alebo text/xml, ako XML su rozoberane vlastne aj vsetky subory s MIME */*+xml, teda napr. application/xhtml+xml, image/svg+xml, application/xslt+xml, application/rss+xml a nejake dalsie.
Testovanie MIME typu ale nedoporucujem. Ak si budes vytahovat tuto informaciu z $_FILES['xml1']['type'], mas tam bezpecnostnu dieru. Tato informacia je totiz posielana klientom a ktokolvek sikovnejsi ju vie zmenit, a pri uploade niektorymi starsimi verziami IE sa moze poslat MIME typ text/plain, ma s tym problem aj napriklad validator.
Preto odporucam kontrolovat priponu suboru, pripadne spravit textareu na vkladanie XML kodu miesto uploadovania XML suboru, ak ti to nerobi problem.
|
|
Registrovaný: 07.08.06 Prihlásený: 18.11.21 Príspevky: 947 Témy: 268 | 268 Bydlisko: Levice |
vdaka Duri, len ako zistim koncovku uploadnuteho suboru, ked este nie je ulozeny ?
Mozem v tomto pripade pouzit $_FILES['xml1']['tmp_name'] ? ked pises ze v pouziti s type to nie je bezpecne?
|
|
Registrovaný: 11.08.07 Príspevky: 4088 Témy: 34 | 34 Bydlisko: Brno |
Skus $_FILES['xml1']['name']. Tmp_name nie je povodny nazov suboru, budes tam mat par zahadnych znakov, nie .xml na konci. Tu mas par sposobov, ako zistit priponu suboru, vid komentare.
|
|
Registrovaný: 31.05.09 Prihlásený: 02.06.17 Príspevky: 562 Témy: 37 | 37 Bydlisko: BegyBen |
No neviem tymto by ste si moc nepomohli, ked uz o bezpecnosti tak treba spomenut aj nulovy bajt
|
|
Registrovaný: 11.08.07 Príspevky: 4088 Témy: 34 | 34 Bydlisko: Brno |
A ako ho chces kontrolovat, ked PHP skriptu dorazi len string po NUL byte? Ak POSTom odoslem blabla\0subor.xml, PHP skript mi vrati blabla, co samozrejme na konci .xml nema, je to neplatny nazov. Nemam pravdu?
|
|
Registrovaný: 30.05.06 Prihlásený: 08.10.14 Príspevky: 1756 Témy: 35 | 35 Bydlisko: BA - WESTSIDE |
A zmeniť koncovku je také ťažké? Bude aj obrazok.jpg.xml XML súbor? Skôr by som sa zameral na to, či je daný XML súbor "well-formed", tj. či vyhovuje tvojím požiadavkám. Neviem, aké súbory chceš, ale ak musia mať nejaký predpísaný formát, nie je problém si to jednoducho skontrolovať a pustiť len také súbory.
_________________
A. S. Tanenbaum píše: The terms LF, MF, and HF refer to low, medium, and high frequency, respectively. Clearly, when the names were assigned, nobody expected to go above 10 MHz, so the higher bands were later named the Very, Ultra, Super, Extremely, and Tremendously High Frequency bands. Beyond that there are no names, but Incredibly, Astonishingly, and Prodigiously high frequency (IHF, AHF, and PHF) would sound nice. |
|
Registrovaný: 31.05.09 Prihlásený: 02.06.17 Príspevky: 562 Témy: 37 | 37 Bydlisko: BegyBen |
Ďuri píše: A ako ho chces kontrolovat, ked PHP skriptu dorazi len string po NUL byte? Ak POSTom odoslem blabla\0subor.xml, PHP skript mi vrati blabla, co samozrejme na konci .xml nema, je to neplatny nazov. Nemam pravdu?
A co tak subor kod.php%00subor.xml (kod.php\0subor.xml)? Koncoukou zistis ze je ok, no ulozi sa ti ako kod.php idealny sposob je riesenie ake napisal p360t
|
|
Registrovaný: 11.08.07 Príspevky: 4088 Témy: 34 | 34 Bydlisko: Brno |
Nepride PHP skriptu uz len kod.php? Vyskusal som ajaxom odoslat php skriptu "kod.php\0subor.xml" (pomocou POST) a prislo len kod.php...hm?
Samozrejme, ze p360tovo riesenie je dobre, ale testovaniu koncovky sa nevyhnes:
subor. php
Kód: <root><![CDATA[<?php system($argv[0]) ?>]]></root> Keby si to kontroloval, ci je to well-formed XML, bude to. Ale spustis to normalne, lebo je to PHP subor.
|
|
Registrovaný: 31.05.09 Prihlásený: 02.06.17 Príspevky: 562 Témy: 37 | 37 Bydlisko: BegyBen |
Teraz neviem na co ti mam odpovedat pretoze si text uz asi 3x upravil a nedokazem aktualne reagovat
Citácia: Samozrejme, ze p360tovo riesenie je dobre, ale testovaniu koncovky sa nevyhnes:
Nikde som nevravel ze testovaniu koncovky sa vyhnes.
Ide v podstate o to ako si pisal na zaciatku o premennych ze ako moze byt v premennej retazec kod.php\0subor.xml a naraz kod.php len tak.
Nie je to len tak, nejde o to ako to vnima PHP ale jazyk C ked sa subor uklada
Skus si napr. skript:
Kód: <?php $nas_subor=fopen("kod.php\0obr.jpg", "w+"); ?>
Ulozil sa ti subor kod.php\0obr.jpg ? alebo kod.php ?
|
|
Registrovaný: 11.08.07 Príspevky: 4088 Témy: 34 | 34 Bydlisko: Brno |
Takyto skript som si vyskusal a mas pravdu, ulozi sa len kod.php. Preto som si ten prispevok upravil (raz). Dufam ze mi to niekedy odpustis
Ide ale o to, ci sa moze vobec dostat do parametru fopen() funkcie retazec "kod.php\0obr.jpg". Pretoze ci posles string "kod.php\0obr.jpg" cez GET alebo POST, PHPcko pracuje uz iba s "kod.php".
|
|
Registrovaný: 31.05.09 Prihlásený: 02.06.17 Príspevky: 562 Témy: 37 | 37 Bydlisko: BegyBen |
Citácia: Takyto skript som si vyskusal a mas pravdu, ulozi sa len kod.php. Preto som si ten prispevok upravil (raz). Dufam ze mi to niekedy odpustis Citácia: Ide ale o to, ci sa moze vobec dostat do parametru fopen() funkcie retazec "kod.php\0obr.jpg". Pretoze ci posles string "kod.php\0obr.jpg" cez GET alebo POST, PHPcko pracuje uz iba s "kod.php".
Vyskusaj si napriklad cez GET :
Kód: <a href="subor.php?nieco=kod.php%00obrazok.jpg" >KLIK</a>
if (isset($_GET['nieco'])){ $txt = $_GET['nieco']; echo $txt; $nas_subor=fopen("obrazky/".$txt, "w+"); }
|
|
Registrovaný: 09.09.07 Prihlásený: 07.11.16 Príspevky: 3114 Témy: 233 | 233 Bydlisko: Nové Zámky |
Ja to robim inak...
Ak viem ze to ma byt .xml, tak skontrolujem, ci ma na konci .xml
Ak ano, tak ho odstrihnem, a cely nazov pomocou regularnych vyrazov prevediem len na text, cize len pismenka a-z a miesto medzier dam pomlcky a bodky vyhodim, alebo tiez nahradim pomlckami..
na konci pridam .xml
_________________ "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ý: 31.05.09 Prihlásený: 02.06.17 Príspevky: 562 Témy: 37 | 37 Bydlisko: BegyBen |
Neni to az tak zly sposob ale podla mna dost komplikovany a ma nevyhody. Napr. ak ma clovek zlozku kde si uklada na server subory a ulozi si tam 001.xml a neskor si tam bude chciet ulozit subor 458.xml tak vobec netusi ze ten druhy mu prepise ten prvy a vobec ho nenapadne ze oba subory su brane ako ---.xml
Tymto sposobom dost brzdis uzivatelov, pride mi to ako taky drasticky sek netreba vsetko zosekat hned a vobec nie az tak ze uzivatelom robis taketo obmedzenia pre bezpecnost. Oni chcu mat bezpecnost a zaroven volnost. Skor by som sa zameral na escape-ovanie metaznakov a na dany subor a jeho predpisany format
|
|
Registrovaný: 28.06.09 Prihlásený: 18.12.09 Príspevky: 78 Témy: 1 | 1 Bydlisko: Presov |
Osobne by som sa na pripony .xml ani na mine type nespoliehal... Radsej ten subor, ktory pride, by som rozparsoval XML parserom a ak to prejde, tak zistim, ze je to naozaj XML subor.....
_________________ Blogujem teda zijem. Link v profile. |
|
Stránka: 1 z 1
| [ Príspevkov: 15 ] | |
Podobné témy | Témy | Odpovede | Zobrazenia | Posledný príspevok |
---|
| v JavaScript, VBScript, Ajax | 9 | 1062 | 22.12.2009 11:36 neopagan | | v PHP, ASP | 1 | 474 | 19.02.2010 14:11 Ďuri | | v HTML, XHTML, XML, CSS | 0 | 350 | 26.02.2010 16:56 hasic1010 | | v PHP, ASP | 13 | 835 | 14.01.2010 6:10 rooobertek | | v Operačné systémy Microsoft | 1 | 400 | 05.04.2009 13:26 yterbium | | v HTML, XHTML, XML, CSS | 1 | 927 | 16.12.2011 16:49 Ďuri | | v HTML, XHTML, XML, CSS | 0 | 774 | 02.11.2009 17:46 sINN3r | | v Assembler, C, C++, Pascal, Java | 5 | 661 | 19.06.2017 21:16 BX | | v HTML, XHTML, XML, CSS | 1 | 817 | 02.04.2009 13:38 Tominator | | v HTML, XHTML, XML, CSS | 10 | 1355 | 10.05.2023 13:48 jojo46 | | v PHP, ASP | 2 | 647 | 06.11.2010 9:57 NikonD5000 | | v Assembler, C, C++, Pascal, Java | 1 | 436 | 04.06.2012 10:40 Siriuse | | v PHP, ASP | 1 | 467 | 22.10.2011 19:13 chrono | | v PHP, ASP | 2 | 651 | 29.04.2009 16:10 Draex | | v PHP, ASP | 6 | 742 | 17.07.2009 23:15 p360t | | v PHP, ASP | 6 | 617 | 21.08.2008 16:07 MKI-Miro |
|