Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [php] walidacja po typie mime
hhg
post
Post #1





Grupa: Zarejestrowani
Postów: 316
Pomógł: 0
Dołączył: 5.07.2006

Ostrzeżenie: (0%)
-----


piszę walidacje do uploadowanych plikow, i m.in sprawdzam typ mime takiego pliku. Mam wpuszczac tylko .xls, .doc, i pare innych. Niestety cos takiego:

  1. <?php
  2. if (
  3. $_FILES[$pointer]['type'] !== 'application/pdf' &&
  4. $_FILES[$pointer]['type'] !== 'application/msword' &&
  5. $_FILES[$pointer]['type'] !== 'application/vnd.ms-excel' &&
  6. $_FILES[$pointer]['type'] !== 'drawing/x-dwf' &&
  7. $_FILES[$pointer]['type'] !== 'model/vnd.dwf' &&
  8. $_FILES[$pointer]['type'] !== 'application/acad' &&
  9. $_FILES[$pointer]['type'] !== 'image/vnd.dwg' &&
  10. $_FILES[$pointer]['type'] !== 'image/x-dwg'
  11. ) {
  12. return new Notice(FALSE,'VALIDATE_UPLOADED_WRONG_FILE_FORMAT');
  13. }
  14. ?>


nie pozwala na jednym kompie wpuścic pliku .xls i .doc a na drugim pozwala!! nie rozumiem dlaczego
czy macie jakies pomysly dlaczego tak się dzieje?

z gory dzieki za pomoc
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 10)
revyag
post
Post #2





Grupa: Przyjaciele php.pl
Postów: 2 258
Pomógł: 16
Dołączył: 21.09.2004
Skąd: Kielce

Ostrzeżenie: (0%)
-----


Napewno wina kompa ?
Dokumenty worda i excela i te z openoffica maja inne mime, pewnie tu masz problem.


--------------------
-------------

------
Go to the top of the page
+Quote Post
hhg
post
Post #3





Grupa: Zarejestrowani
Postów: 316
Pomógł: 0
Dołączył: 5.07.2006

Ostrzeżenie: (0%)
-----


to by sie zgadzalo smile.gif w takim raziej jaki jest typ mime do open office do xls i doc? wszedzie jest podane to Officowe..

czy moze sa to odt i ods z
http://framework.openoffice.org/documentat.../mimetypes.html
questionmark.gif

Ten post edytował hhg 21.08.2007, 22:15:13
Go to the top of the page
+Quote Post
piotrekkr
post
Post #4





Grupa: Zarejestrowani
Postów: 386
Pomógł: 25
Dołączył: 28.09.2005

Ostrzeżenie: (0%)
-----


To z manuala :
Cytat
$_FILES['userfile']['type']

The mime type of the file, if the browser provided this information. An example would be "image/gif". This mime type is however not checked on the PHP side and therefore don't take its value for granted.

Nie powinno sie brac tego za bardzo wiarygodna informacje o typie mime bo jest ona sprawdzana jedynie po stronie przegladarki a ja mozna oszukac.
Kiedys tez myslalem o walidacji przez typ mime i doszedlem do tego: http://pl2.php.net/manual/pl/ref.fileinfo.php. Niestety nie na kazdym hostingu jest to rozszerzenie :/ A co do typow mime dokumentow to w necie poszperalem troche i znalazlem takie typy:
Kod
$allowed_mime_types = array (
                
                //images
                'image/bmp',
                'image/gif',
                'image/jpeg',
                'image/pjpeg',
                'image/png',
                'image/x-png',
                'image/tiff',
                'image/x-tiff',
                'image/x-windows-bmp',
                'image/vnd.djvu',
                'image/svg+xml',
                
                //documents
                'text/plain',
                'application/msword',
                'application/vnd.ms-powerpoint',
                'application/postscript',
                'text/sgml',
                'application/x-latex',
                'application/mspowerpoint',
                'text/rtf',
                'text/richtext',
                'application/vnd.ms-excel',
                'application/pdf',
                'application/postscript',
                'text/xml',
                'application/x-dvi',
                'application/vnd.oasis.opendocument.text',
                'application/vnd.oasis.opendocument.text-template',
                'application/vnd.oasis.opendocument.presentation',
                'application/vnd.oasis.opendocument.presentation-template',
                'application/vnd.oasis.opendocument.graphics',
                'application/vnd.oasis.opendocument.graphics-template',
                'application/vnd.oasis.opendocument.spreadsheet',
                'application/vnd.oasis.opendocument.spreadsheet-template',
                'application/vnd.oasis.opendocument.chart',
                'application/vnd.oasis.opendocument.formula',
                'application/vnd.oasis.opendocument.database',
                'application/vnd.oasis.opendocument.image',
                'application/vnd.sun.xml.writer',
                'application/vnd.sun.xml.writer.template',
                'application/vnd.sun.xml.calc',
                'application/vnd.sun.xml.calc.template',
                'application/vnd.sun.xml.draw',
                'application/vnd.sun.xml.draw.template',
                'application/vnd.sun.xml.impress',
                'application/vnd.sun.xml.impress.template',
                'application/vnd.sun.xml.writer.global',
                'application/vnd.sun.xml.math',
                'application/vnd.stardivision.writer',
                'application/vnd.stardivision.writer-global',
                'application/vnd.stardivision.calc',
                'application/vnd.stardivision.draw',
                'application/vnd.stardivision.impress',
                'application/vnd.stardivision.impress-packed',
                'application/vnd.stardivision.math',
                'application/vnd.stardivision.chart'
            );

W czesci documents sa tez uwzglednione typy mime staroffice office i openoffice. Jak znajdziesz jeszcze jakies inne to napisz smile.gif

Ten post edytował piotrekkr 21.08.2007, 22:19:19
Go to the top of the page
+Quote Post
hhg
post
Post #5





Grupa: Zarejestrowani
Postów: 316
Pomógł: 0
Dołączył: 5.07.2006

Ostrzeżenie: (0%)
-----


ok dzieki,
w takim razie dla exportowanych z OO .doc jest to:
application/vnd.oasis.opendocument.text

a dla exportowanych .xls jest to:
application/vnd.oasis.opendocument.spreadsheet

?

Ten post edytował hhg 21.08.2007, 22:24:34
Go to the top of the page
+Quote Post
piotrekkr
post
Post #6





Grupa: Zarejestrowani
Postów: 386
Pomógł: 25
Dołączył: 28.09.2005

Ostrzeżenie: (0%)
-----


takie mime znalazlem googlujac po necie smile.gif np na tej stronce http://www.prv.pl/dzialy/wiedza/webreporter/?id=0110 albo tutaj http://www.iana.org/assignments/media-types/application/ lub http://www.webmaster-toolkit.com/mime-types.shtml lub http://www.ltsw.se/knbase/internet/application.htp lub http://www.utoronto.ca/webdocs/HTMLdocs/Bo...b/mimetype.html itd google wie wszystko smile.gif

Ten post edytował piotrekkr 21.08.2007, 22:35:38
Go to the top of the page
+Quote Post
hhg
post
Post #7





Grupa: Zarejestrowani
Postów: 316
Pomógł: 0
Dołączył: 5.07.2006

Ostrzeżenie: (0%)
-----


ok, a jak sie zabezpieczasz przed podszywajacymi sie pod .doc i .xls plikami .php (spreparowany typ mime w przegladarce) ktore moga zniszczyc Ci bazę? bo na to jeszcze nie wpadłem
Go to the top of the page
+Quote Post
piotrekkr
post
Post #8





Grupa: Zarejestrowani
Postów: 386
Pomógł: 25
Dołączył: 28.09.2005

Ostrzeżenie: (0%)
-----


nie tyle moga zniszczyc baze co poprostu umozliwi komus wrzucenie pliku ktorego typ jest zabroniony/nieporzadany smile.gif
Go to the top of the page
+Quote Post
hhg
post
Post #9





Grupa: Zarejestrowani
Postów: 316
Pomógł: 0
Dołączył: 5.07.2006

Ostrzeżenie: (0%)
-----


chodzi mi wrzucenie pliku .php ktorego uruchomienie moze sie zle skonczyc.. winksmiley.jpg

znalazlem cos
http://pl2.php.net/mime-content-type
testowales to?

Ten post edytował hhg 21.08.2007, 22:43:43
Go to the top of the page
+Quote Post
piotrekkr
post
Post #10





Grupa: Zarejestrowani
Postów: 386
Pomógł: 25
Dołączył: 28.09.2005

Ostrzeżenie: (0%)
-----


Cytat
Ostrzeżenie

This function has been deprecated as the PECL extension Fileinfo provides the same functionality (and more) in a much cleaner way.


Zalecaja niby fileinfo bo tamta funkcja jest przestarzala. Poza tym jak wrzucasz jakikolwiek plik php czy txt czy jakis inny plik tekstowy na serwer to jest to plik o typie 'text/plain' wiec przez mime nie dowiesz sie czy jest to kod php. Najlepiej byloby gdybys poprostu zmienial nazwe po uploadzie na jakas inna koncowke ktorej nie przetwarza domyslnie apache wtedy nie wykonalby sie skrypt. mozna tez uzyc .htaccess i zabezpieczyc folder przed kimkolwiek innym niz apache i php wtedy nawet jakby wpisal ktos bezposredni adres do pliku ze skryptem w przegladarke to dostalby Access Denied a php ladnie by sobie moglo korzystac z plikow w tym folderze smile.gif
Go to the top of the page
+Quote Post
hhg
post
Post #11





Grupa: Zarejestrowani
Postów: 316
Pomógł: 0
Dołączył: 5.07.2006

Ostrzeżenie: (0%)
-----


text/plain nawet nie wpuszczam

aha racja, w sume mozna nawet wyrzucic ten katalog poza public_html z plikami
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 19.08.2025 - 23:54