![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
![]() Grupa: Zarejestrowani Postów: 1 116 Pomógł: 119 Dołączył: 10.05.2005 Skąd: Poznań Ostrzeżenie: (0%) ![]() ![]() |
Mam problem
Musze uploadowac pliki, poprzez formularz html, do katalogu, ktory jest dostepny po wpisaniu "z palca" z paska adresu. Chodzi o to aby haker nie zuploadowal sobie jakiegos pliku w stylu usune_wszystko.php ![]() Dodam ze musze uploadowac bardzo duzo typow plikow (nie tylko graficzne) i nie za bardzo wchodzi w rachube filtrowanie ich po MIME. Jak wy robicie takie zabezpieczenia?... dodajecie header, czy jak? pozdrawiam. |
|
|
![]()
Post
#2
|
|
![]() Grupa: Przyjaciele php.pl Postów: 2 196 Pomógł: 2 Dołączył: 17.01.2004 Skąd: Sosnowiec Ostrzeżenie: (0%) ![]() ![]() |
-------------------- |
|
|
![]()
Post
#3
|
|
![]() Grupa: Zarejestrowani Postów: 1 116 Pomógł: 119 Dołączył: 10.05.2005 Skąd: Poznań Ostrzeżenie: (0%) ![]() ![]() |
no dobrze, ale czy czasem nie ma innych plikow wykonywalnych?
np takie jak php3, php4 Wiem ze zalezy to od serwera, ale w moim przypadku to bedzie uzywane na wielu serwerach, wiec nie moge za kazdym razem sprawdzac jakie pliki beda wykonywalnymi. Poza tym nie moge zaufac temu ze haker sam w jakis sobie znany sposob zmieni typy wykonywalnych plikow. |
|
|
![]()
Post
#4
|
|
![]() Grupa: Zarejestrowani Postów: 2 262 Pomógł: 21 Dołączył: 3.05.2004 Skąd: Sopot, Krakow, W-wa Ostrzeżenie: (0%) ![]() ![]() |
Można tak
-------------------- Javascript, Coffeescript, Node.js, Mongo, CouchDb, chmury, workery & inne bajery - zycie jest zbyt krotkie aby miec nudna prace :)
|
|
|
![]()
Post
#5
|
|
![]() Grupa: Przyjaciele php.pl Postów: 2 196 Pomógł: 2 Dołączył: 17.01.2004 Skąd: Sosnowiec Ostrzeżenie: (0%) ![]() ![]() |
Czasem wypadałoby też trochę ruszyć główką
![]()
Ten post edytował crashu 5.07.2005, 16:53:54 -------------------- |
|
|
![]()
Post
#6
|
|
![]() Grupa: Zarejestrowani Postów: 1 116 Pomógł: 119 Dołączył: 10.05.2005 Skąd: Poznań Ostrzeżenie: (0%) ![]() ![]() |
ochh!
Ale ja pytam o przypadku, kiedy NIE WIEM, jakie typy plikow na danym serwerze sa wykonywalne. Tu *.php3 i *.php4 podalem tylko jako przyklad. przeciez w przyszlosci moze sie na przyklad zdazyc ze moze stac sie wykonywalnym na przyklad plik *.php5.. a jeszcze pozniej *.php6... tylko nie pisz ze mozna tak:
![]() Ten post edytował Cezar708 5.07.2005, 17:04:55 |
|
|
![]()
Post
#7
|
|
Grupa: Zarejestrowani Postów: 446 Pomógł: 0 Dołączył: 5.03.2005 Skąd: Lublin Ostrzeżenie: (0%) ![]() ![]() |
Cytat(Cezar708 @ 2005-07-05 18:04:00) przeciez w przyszlosci moze sie na przyklad zdazyc ze moze stac sie wykonywalnym na przyklad plik *.php5.. a jeszcze pozniej *.php6... to wtedy porpwaisz swoj skrypt a co do plikow wykonywanyc na serwerze to mozesz sprawdzic w ustawieniach lub zapytac sie admin i jak np. wykonywany bedzie plik *.inny to to rozszerzenie dajesz do tablicy rozszerzen zabronionych ![]() |
|
|
![]()
Post
#8
|
|
![]() Grupa: Przyjaciele php.pl Postów: 5 724 Pomógł: 259 Dołączył: 13.04.2004 Skąd: N/A Ostrzeżenie: (0%) ![]() ![]() |
1. autoryzacja dostepu do formularza uploadu
2. uploadujesz do katalogu do ktorego niue dostaniesz sie poprzez wpisanie adresu w przegladarce -------------------- Nie lubię jednorożców.
|
|
|
![]()
Post
#9
|
|
Grupa: Zarejestrowani Postów: 411 Pomógł: 35 Dołączył: 27.06.2004 Skąd: Kraków Ostrzeżenie: (0%) ![]() ![]() |
Ja to rozwiązałem jeszcze inaczej, w pliku .htaccess mam
Kod AddType application/x-httpd-php-source php AddType application/x-httpd-php-source php3 AddType application/x-httpd-php-source php4 AddType application/x-httpd-php-source phtml itd. -------------------- |
|
|
![]()
Post
#10
|
|
![]() Grupa: Zarejestrowani Postów: 1 116 Pomógł: 119 Dołączył: 10.05.2005 Skąd: Poznań Ostrzeżenie: (0%) ![]() ![]() |
no to jeszcze raz...
1. Musze uploadowac do katalogu ktory mozna napisac 'z palca' bo inaczej nie mialbym problemu, bo coz za problem skoro plik sie nie ma szans wykonac. 2. Chce ominac ciagla poprawianie kodu co jakis czas, poniewaz nie bede mial do nich pozniej dostepu 3. Dostep do formularza jest niestety publiczny i taki musi pozostac 4. Nie wiem na jakich serwerach w przyszlosci te skrypty beda dzialaly, wiec tez nie wiem z gory jakie pliki, beda wykonywalne 5. Nie moge tez na stale wpisac wszystkich mozliwych rozszerzen do jakiejs tablicy, bo to bylaby zbyt dluga i zmudna robota Idealne byloby umieszczenie jakiegos naglowka w pliku, ale nie wiem jak to zrobic dla roznych typow plikow. Oczywiscie mile widziane bylyby alternatywne rozwiazania. ... dlatego ciagle szukam ... POMOŻECE? ![]() ![]() |
|
|
![]()
Post
#11
|
|
![]() Grupa: Przyjaciele php.pl Postów: 2 196 Pomógł: 2 Dołączył: 17.01.2004 Skąd: Sosnowiec Ostrzeżenie: (0%) ![]() ![]() |
No to napawdę, sprawdzaj typ MIME, bo poza tym niemasz zbyt dużych możliwości, bo jak admin ustawi dozwolone rozszerzenie php na np. run to co? No ale z drugiej strony, jak by takie rzeczy miał odgadywać ewentualny hacker?
-------------------- |
|
|
![]()
Post
#12
|
|
![]() Grupa: Zarejestrowani Postów: 521 Pomógł: 0 Dołączył: 3.11.2003 Skąd: 3city Ostrzeżenie: (0%) ![]() ![]() |
Cytat 1. Musze uploadowac do katalogu ktory mozna napisac 'z palca' bo inaczej nie mialbym problemu, bo coz za problem skoro plik sie nie ma szans wykonac. Właściwie to dlaczego musisz? IMHO wcale nie musisz. Możesz przecież zrobić skrypt, który przepuści zawartość pliku z tego katalogu na przeglądarkę. Nie widzę żadnego powodu, dla którego musisz trzymać się tego rozwiązania. No ale jeżeli naprawdę musisz napisać skrypt, który ma poważną dziurę w bezpieczeństwie (czyli: ktoś ci każe), to nie twoja wina. |
|
|
![]()
Post
#13
|
|
Grupa: Zarejestrowani Postów: 28 Pomógł: 0 Dołączył: 17.04.2004 Skąd: Wrocław Ostrzeżenie: (0%) ![]() ![]() |
A jak zrobić coś podobnego...(chodzi dokładniej rzecz biorąc o możliwość wgrania tylko i wyłącznie plików: plików archiwów - zip, rar, itp, plików exe i graficznych - jpegi, png, gif) przy pomocy mime types. Pamietam, że gdzies to kiedyś widziałem, ale opcja szukaj nie daje mi pozytywnych rezultatów... prosze o pomoc
|
|
|
![]()
Post
#14
|
|
![]() Grupa: Przyjaciele php.pl Postów: 2 196 Pomógł: 2 Dołączył: 17.01.2004 Skąd: Sosnowiec Ostrzeżenie: (0%) ![]() ![]() |
Za pomocą samych typów mime tego nie zrobisz bo zip, rar, php itp mają taki sam. Użyj tego co przedstawiliśmy wyżej + tablica z dozwolonymi typami porównywana z $_FILES[ 'plik' ][ 'type' ]...
-------------------- |
|
|
![]()
Post
#15
|
|
Grupa: Zarejestrowani Postów: 28 Pomógł: 0 Dołączył: 17.04.2004 Skąd: Wrocław Ostrzeżenie: (0%) ![]() ![]() |
No niby wystarczyłoby tak zrobić(tylko od drugiej strony... dozwolonych formatów jest mniej
![]()
Pojawia się tylko jeden problem.... W zasadzie można zmienić rozszerzenie pliku i wgrać go na serwer. Nie wiem jak to technicznie wygląda, ale żeby później się nie okazało, że jakaś przeglądarka sprawdzi mime i uruchomi skrypt php... dlatego przydałoby się chyba połączenie tego i sprawdzania mimów, a to nie wiem jak zrobić(i jakie mime mają te rozszerzenia ![]() |
|
|
![]()
Post
#16
|
|
Grupa: Przyjaciele php.pl Postów: 7 494 Pomógł: 302 Dołączył: 31.03.2004 Ostrzeżenie: (0%) ![]() ![]() |
Cytat(Pedros @ 2005-07-24 11:04:26) (...) sprawdzania mimów, a to nie wiem jak zrobić 1. mime_content_type() 2. Ostrożnie z tym. Taki shIEt badzIEwie potrafi zmienić typ mime pliku. Kiedyś pisałem system uploadu obrazków, który się rozbił o ta "przeglądarke" ponieważ nie przesyłała plików .jpeg z poprawnym typem mime. Cytat(Pedros @ 2005-07-24 11:04:26) (...) (i jakie mime mają te rozszerzenia ![]() Kiedyś na forum był topic ze spisem typów mime, ale został usunięty (nie wiem z jakich powodów, może był za stary). Bardzo długo go szukałem zanim się o tym zorientowałem. Podziękowac należy Google za to że nadal mamy do niego dostęp: forum.php.pl: Spis typów mime Cached by Google |
|
|
![]()
Post
#17
|
|
![]() Grupa: Zarejestrowani Postów: 853 Pomógł: 25 Dołączył: 27.08.2003 Skąd: Katowice Ostrzeżenie: (0%) ![]() ![]() |
Cytat(mike_mech @ 2005-07-24 11:38:15) Kiedyś na forum był topic ze spisem typów mime, ale został usunięty (nie wiem z jakich powodów, może był za stary). Bardzo długo go szukałem zanim się o tym zorientowałem. Podziękowac należy Google za to że nadal mamy do niego dostęp: forum.php.pl: Spis typów mime Cached by Google tu jest chyba nawet troszke wiecej : http://www.webmaster-toolkit.com/mime-types.shtml -------------------- "If debugging is the process of removing bugs, then programming must be the process of putting them in..."
sobstel.org |
|
|
![]()
Post
#18
|
|
Grupa: Zarejestrowani Postów: 28 Pomógł: 0 Dołączył: 17.04.2004 Skąd: Wrocław Ostrzeżenie: (0%) ![]() ![]() |
No .... jestem już prawie na ukończeniu.
Ale pojawił się pewien problem... nie wiem czy wszyscy popełniliście błąd(lub jedna osoba popełniła, a reszta nie zauważyła) czy mój serwer jest upośledzony.... ale: mam sobie nazwę pliku costam.zip po wgraniu tego przez formularz zaczynam sprawdzać, czy rozszerzenie jest ok... i tu pojawiają się jaja ![]() po takim kawałku kodu z: i wyświetleniu $rozszerzenie, przeglądarka pokazuje mi: costam i teraz kwestia do rozwiązania... czy to możliwe? skoro niby funkcja array_shift" title="Zobacz w manualu PHP" target="_manual usuwa z początku tablicy ![]() Ten post edytował Pedros 24.07.2005, 18:10:35 |
|
|
![]()
Post
#19
|
|
![]() Grupa: Zarejestrowani Postów: 853 Pomógł: 25 Dołączył: 27.08.2003 Skąd: Katowice Ostrzeżenie: (0%) ![]() ![]() |
czytaj uwaznie manuala : "array_shift() usuwa pierwszą wartość parametru tablica i zwraca go skracając tą tablicę o jeden element" , czyli w twoim przypadku w $rozsrzenie bedzie siedziec ten pierwszy element. to czego szukasz to raczej array_pop" title="Zobacz w manualu PHP" target="_manual
-------------------- "If debugging is the process of removing bugs, then programming must be the process of putting them in..."
sobstel.org |
|
|
![]()
Post
#20
|
|
Grupa: Zarejestrowani Postów: 28 Pomógł: 0 Dołączył: 17.04.2004 Skąd: Wrocław Ostrzeżenie: (0%) ![]() ![]() |
w takim razie dzięki za pomoc...
dla mnie słowo USUWA jest jednoznaczne... jak coś jest usunięte, to tego nie ma ![]() PS: teraz przynajmniej wiadomo, że to crashu pisząc kod się walnął ![]() |
|
|
![]() ![]() |
![]() |
Wersja Lo-Fi | Aktualny czas: 24.07.2025 - 21:18 |