![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 566 Pomógł: 35 Dołączył: 21.06.2006 Ostrzeżenie: (0%) ![]() ![]() |
Mam dosc spory problem ze skryptem.
User uploaduje obrazek, skrypt sprawdza czy obrazek ma: - Dozwolone rozszezenie - Dozwolony mime - Nie przekracza 2MB - Czy funckaj getimagesize() zwroci prawidlowy wynik Wszytko jest ok ale dodajac do pliku php na poczatku pierwsze kilka KB z obrazka i nadajc rozszeznie .jpg mozna upnac kod php co mi sie bardzo nie podoba ![]() Jak przed tym zabezpiecza sie imageshack ktory nie daje sie nabrac ? -------------------- flexiCMS v2 [|||||||+--] 75% done
|
|
|
![]()
Post
#2
|
|
![]() Grupa: Zarejestrowani Postów: 83 Pomógł: 3 Dołączył: 21.04.2007 Skąd: Sosnowiec Ostrzeżenie: (0%) ![]() ![]() |
Sposobem będzie na pewno GD lecz dobre tylko gdy będzie mało razy wykonywane
![]() ![]() -------------------- ![]() |
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 566 Pomógł: 35 Dołączył: 21.06.2006 Ostrzeżenie: (0%) ![]() ![]() |
Sposobem będzie na pewno GD lecz dobre tylko gdy będzie mało razy wykonywane ![]() ![]() Przy kilku obrazkach to i owszem ale nie przy setkach ![]() edit: Czesciowo chyba obszedlem problem. Teraz da sie wgrac taki obrazek ale kod sie nie wykonuje. Dalem w .htaccess: Kod AddType text/plain .php .php3 .php4 .php5 .inc .phtml .cgi .pl RemoveHandler .php Chcialem wylaczyc php engine w katalogu obrazkow ale niestety wywala mi HTTP500 ;/ Ten post edytował kiler129 11.05.2008, 23:07:21 -------------------- flexiCMS v2 [|||||||+--] 75% done
|
|
|
![]()
Post
#4
|
|
![]() Grupa: Zarejestrowani Postów: 1 590 Pomógł: 185 Dołączył: 19.04.2006 Skąd: Gdańsk Ostrzeżenie: (0%) ![]() ![]() |
Sposób stary jak świat: wczytaj kilka początkowych i ostatnich bajtów pliku i zobacz, co zawiera. Są też pewnie gotowe rozwiązania (w ramach PEAR, GD etc.)
|
|
|
![]()
Post
#5
|
|
Grupa: Przyjaciele php.pl Postów: 7 494 Pomógł: 302 Dołączył: 31.03.2004 Ostrzeżenie: (0%) ![]() ![]() |
W zupełności wystarczy getimagesize()
|
|
|
![]()
Post
#6
|
|
Grupa: Zarejestrowani Postów: 566 Pomógł: 35 Dołączył: 21.06.2006 Ostrzeżenie: (0%) ![]() ![]() |
Sposób stary jak świat: wczytaj kilka początkowych i ostatnich bajtów pliku i zobacz, co zawiera. Są też pewnie gotowe rozwiązania (w ramach PEAR, GD etc.) Poczatkowe mozna dac podmienione a koncowe jak niby walidowac? W zupełności wystarczy getimagesize() Ja bla bla bla a ty swoje ![]() Getumagesize wywala mi jakis kosmiczny rozmiar w stylu 535623742345x6745555553235 ale zwraca true i wszytko diabli biora ![]() -------------------- flexiCMS v2 [|||||||+--] 75% done
|
|
|
![]()
Post
#7
|
|
Grupa: Zarejestrowani Postów: 1 085 Pomógł: 231 Dołączył: 12.05.2008 Ostrzeżenie: (0%) ![]() ![]() |
To sprawdzaj nie true albo false, tylko czy rozmiar jest kosmiczny albo nie. Wiadomo, że zwykły user nie wepchnie obrazka o rozdzielczości większej niż jakaś tam, skoro te z dodatkowym kodem mają dziki rozmiar wystarczy zrobić jeden warunek i voila.
|
|
|
![]()
Post
#8
|
|
![]() Grupa: Zarejestrowani Postów: 1 116 Pomógł: 119 Dołączył: 10.05.2005 Skąd: Poznań Ostrzeżenie: (0%) ![]() ![]() |
aby obronić się przed wsztrzykniętym kodem PHP (i nie tylko) po prostu pobierz obrazek i poprzez GD przekonwertuj go na jakiś format graficzny (nawet taki sam jakim sam jest) to spowoduje usunięcie wszelkich dodatkowych kodów, które nie są danymi obrazka.
Pozdrawiam |
|
|
![]()
Post
#9
|
|
Grupa: Zarejestrowani Postów: 566 Pomógł: 35 Dołączył: 21.06.2006 Ostrzeżenie: (0%) ![]() ![]() |
aby obronić się przed wsztrzykniętym kodem PHP (i nie tylko) po prostu pobierz obrazek i poprzez GD przekonwertuj go na jakiś format graficzny (nawet taki sam jakim sam jest) to spowoduje usunięcie wszelkich dodatkowych kodów, które nie są danymi obrazka. Pozdrawiam To jest genialne! Dziekuje ![]() -------------------- flexiCMS v2 [|||||||+--] 75% done
|
|
|
![]()
Post
#10
|
|
![]() Grupa: Zarejestrowani Postów: 654 Pomógł: 17 Dołączył: 19.03.2006 Skąd: z kosmosu ;) Ostrzeżenie: (0%) ![]() ![]() |
Możesz też sprawdzać klasą:
http://manual.babciastefa.boo.pl/download/...ment.class.phps - Sama klasa http://manual.babciastefa.boo.pl/download/db.eme - Baza danych klasy http://manual.babciastefa.boo.pl/download/E.M.E.test.phps - Przykład Dziękuję, Babcia@Stefa -------------------- Środowisko testowe (desktop) - Gedit, lighttpd, sftp, rsync, xfce4-terminal, chromium, firefox4 | System: Gentoo ~x86
O'Neill - serwer WWW @ lighttpd, links, nano, rsyncd, sftpd | System: Debian ![]() |
|
|
![]()
Post
#11
|
|
Grupa: Zarejestrowani Postów: 258 Pomógł: 17 Dołączył: 22.05.2007 Ostrzeżenie: (0%) ![]() ![]() |
a czy nie wystarczy ustawic praw do takiego pliku na 640
![]() -------------------- |
|
|
![]()
Post
#12
|
|
![]() Developer Grupa: Moderatorzy Postów: 3 045 Pomógł: 290 Dołączył: 20.01.2007 ![]() |
|
|
|
![]()
Post
#13
|
|
Grupa: Zarejestrowani Postów: 258 Pomógł: 17 Dołączył: 22.05.2007 Ostrzeżenie: (0%) ![]() ![]() |
Logicznie rzecz biorąc, jeśli kod zawarty w obrazu będzie "blokowany" przez chmod, to obrazek również. ale ja blokuję tylko "do wykonania" natomiast czytac może każdy.. i pytanie z mojej strony jest jak najbardziej powazne (choc moze glupie) -------------------- |
|
|
![]()
Post
#14
|
|
![]() Grupa: Zarejestrowani Postów: 813 Pomógł: 34 Dołączył: 18.03.2007 Skąd: o stamtąd Ostrzeżenie: (0%) ![]() ![]() |
Cytat Wszytko jest ok ale dodajac do pliku php na poczatku pierwsze kilka KB z obrazka i nadajc rozszeznie .jpg mozna upnac kod php co mi sie bardzo nie podoba Domyślnie kod php w plikach z rozszerzeniem .jpg nie jest wykonywany. Z jakimkolwiek rozszerzeniem oprócz .php .php3 .php4 .php5, także nie wiem w czym problem. Ten post edytował b_chmura 13.05.2008, 23:35:25 |
|
|
![]()
Post
#15
|
|
Grupa: Zarejestrowani Postów: 566 Pomógł: 35 Dołączył: 21.06.2006 Ostrzeżenie: (0%) ![]() ![]() |
Domyślnie kod php w plikach z rozszerzeniem .jpg nie jest wykonywany. Z jakimkolwiek rozszerzeniem oprócz .php .php3 .php4 .php5, także nie wiem w czym problem. Tak tylko apache chyba po mime patrzy i jakims dzinym trafem uznaje to za plik PHP. Jak to dziala glebiej nie mam pojecia, najprosciej wylaczyc php w katalogu obrazkow ale niestety nie moge. -------------------- flexiCMS v2 [|||||||+--] 75% done
|
|
|
![]()
Post
#16
|
|
![]() Grupa: Zarejestrowani Postów: 813 Pomógł: 34 Dołączył: 18.03.2007 Skąd: o stamtąd Ostrzeżenie: (0%) ![]() ![]() |
|
|
|
![]()
Post
#17
|
|
Grupa: Zarejestrowani Postów: 566 Pomógł: 35 Dołączył: 21.06.2006 Ostrzeżenie: (0%) ![]() ![]() |
Tak oczywiscie, sprawdzam MIME ale nie wiedziec dlaczego apache przy odowlywnaiu sie do pliku probuje byc madrejszy i wykonuje kod. Jak mowie nie wiem dlaczego ale pomoglo dodanie "RemoveHandler .php"
Mam dostep na serwerze do php.ini - czy jest mozliwsoc pokombinowania w nim i wylaczenia dla konkretnego katalogu engine php ? -------------------- flexiCMS v2 [|||||||+--] 75% done
|
|
|
![]() ![]() |
![]() |
Wersja Lo-Fi | Aktualny czas: 28.06.2025 - 15:10 |