Bezpieczeństwo skryptów PHP, Jak zabezpieczyć się przed włamaniem |
Bezpieczeństwo skryptów PHP, Jak zabezpieczyć się przed włamaniem |
4.03.2007, 02:39:44
Post
#81
|
|
Grupa: Zarejestrowani Postów: 793 Pomógł: 32 Dołączył: 23.11.2006 Skąd: Warszawa Ostrzeżenie: (0%) |
Ivellios przeczytaj to co już jest, tam znajdziesz odpowiedź.
Musisz wiedzieć o 'grubszych' dziurach jakie się zdarzają sam, bo tak każdy skrypt byś musiał komuś podsyłać aby sprawdzić. Co do tego co podałeś, to jeśli pid jest polem typu liczbowego, to powinieneś sprawdzić czy $_GET['id'] jest liczbą, jak jest to dobrze jak nie to ignorujesz. A addslash w takim wypadku jest zbędny, bo jak jest liczbą to nie może mieć innych znaków. -------------------- Algorytmy w PHP, czy ktoś o tym słyszał?
Dlaczego tak mało kobiet programuje? ponieważ nie zajmują się głupotami. |
|
|
4.03.2007, 07:54:58
Post
#82
|
|
Grupa: Zarejestrowani Postów: 18 Pomógł: 0 Dołączył: 2.03.2007 Ostrzeżenie: (0%) |
Co do tego addslasha to zmieniłem go na mysql_escape_string. A jak będę miał wolną chwilkę to przejrzę cały temacik i pomyślę, co by jeszcze "ubezpiecznić"
|
|
|
27.03.2007, 14:11:39
Post
#83
|
|
Grupa: Zarejestrowani Postów: 5 Pomógł: 0 Dołączył: 27.03.2007 Ostrzeżenie: (0%) |
Przeczytałem cały topic - filtrowanie, if fileexist - tylko po co to? Mam taki kod i nie ma bata żeby ktoś tu coś innego includował:
Kod <a href="index.php?strona=glowna">GLOWNA</a><br> <a href="index.php?strona=pobieralnia">POBIERALNIA</a><br> <a href="index.php?strona=omnie">O MNIE</a><br> <?php $page=$_GET['strona']; if(($strona == "") || ($strona == "glowna")) {include("glowna/glowna.php");} else if($strona == "pobieralnia") {include("pobieralnia/pobieralnia.php");} else if($strona == "omnie") {include("omnie/omnie.php");} else // to ma zabezpieczyc {include("glowna/glowna.php");} // nasza strone ?> |
|
|
27.03.2007, 16:00:29
Post
#84
|
|
Grupa: Zarejestrowani Postów: 793 Pomógł: 32 Dołączył: 23.11.2006 Skąd: Warszawa Ostrzeżenie: (0%) |
upaupa widocznie nie czytałeś wszystkiego... bo już lepiej użyć switch niż taką konstrukcję, a dlaczego mimo wszystko tak nie jest najlepiej, masz napisane wcześniejszych postach.
-------------------- Algorytmy w PHP, czy ktoś o tym słyszał?
Dlaczego tak mało kobiet programuje? ponieważ nie zajmują się głupotami. |
|
|
27.03.2007, 17:09:08
Post
#85
|
|
Grupa: Zarejestrowani Postów: 5 Pomógł: 0 Dołączył: 27.03.2007 Ostrzeżenie: (0%) |
a co za różnica czy switch czy else if? - żadna oprócz no powiedzmy przejrzystości kodu. Post przeanalizowałem dokładnie i dalej sądzę że w tym kodzie co podałem nic innego nie da się includować
|
|
|
27.03.2007, 18:27:51
Post
#86
|
|
Grupa: Zarejestrowani Postów: 793 Pomógł: 32 Dołączył: 23.11.2006 Skąd: Warszawa Ostrzeżenie: (0%) |
Przecież przejrzystość i łatwość rozbudowy kodu jest ważna.
A czy ja twierdziłem że można się włamać? Chodziło mi o sens budowy sprawdzania zamiast konstrukcji zamkniętych. -------------------- Algorytmy w PHP, czy ktoś o tym słyszał?
Dlaczego tak mało kobiet programuje? ponieważ nie zajmują się głupotami. |
|
|
29.04.2007, 16:47:22
Post
#87
|
|
Grupa: Zarejestrowani Postów: 66 Pomógł: 0 Dołączył: 14.06.2004 Skąd: Świętochłowice Ostrzeżenie: (0%) |
Witam,
Postanowiłem popracować troche nad bezpieczeństwem pewnej stronki... Przeczytałem ostatnio wiec że lepiej jest w adresie url nie podawać nazwy plikow w postaci np. jakastrona.pl/index.php bezpieczniej jest używać /index.html a to ze względu na fakt iż atakujący nie zna od razu odpowiedzi na pytanie: jaki język skryptowy został użyty do stworzenia strony? A wiec... Przypuśćmy że mam taki adres: www.jakasstrona.pl/podstrona.php?zmienna1=wartosc1&zmienna2=wartosc2 Sladami poprawy bezpieczenstwa chcialbym ten adres zamienic np. na: www.jakasstrona.pl/podstrona_wartosc1_wartosc2_.html z tego adresu mogłbym sobie wyciagnac wartosci odpowiednich zmiennych. Zauwazylem tez ze serwis allegro stosuje taki linkowanie do aukcji, a wiec jest to mozliwe. Zastanawiam sie w jaki sposob dac do zrozumienia mojej stronie aby po wpisaniu tego "bezpiecznego" adresu nie wyswietlala mi sie strona bledu (404)... Drugie pytanie dotyczy tego gdzie ustawic mozliwosc wykonywania skryptow php w plikach .html? Za wskazowki bardzo dziękuję i pozdrawiam. -------------------- ...albo jesteś zerem albo jedynką ;)
|
|
|
29.04.2007, 17:07:31
Post
#88
|
|
Grupa: Zarejestrowani Postów: 690 Pomógł: 81 Dołączył: 6.04.2005 Skąd: Szczecin Ostrzeżenie: (0%) |
ad1. google + mod_rewrite
ad2. w konfigu php ew. w .htaccess AddType application/x-httpd-php .html a od siebie dodam: http://www.beldzio.com/ mam nadzieję, że da się tam znaleźć coś ciekawego ;-) -------------------- |
|
|
4.05.2007, 17:38:46
Post
#89
|
|
Grupa: Zarejestrowani Postów: 1 657 Pomógł: 125 Dołączył: 29.04.2006 Ostrzeżenie: (0%) |
O jednym zapomnieliście - Z includowaniem plików przesadziliście całkowicie! PHP jest językiem działającym po stronie serwera więc jakie jest niebezpieczeństwo?! Można zincludować plik jako przetworzony już, ale napewno nie będzie mógł dostać się do serwera czy innych takich:P
-------------------- |
|
|
4.05.2007, 17:49:27
Post
#90
|
|
Grupa: Zarejestrowani Postów: 1 033 Pomógł: 125 Dołączył: 17.09.2005 Skąd: Żywiec Ostrzeżenie: (0%) |
1.
Po kliknięciu na link http://server.com/index.php?id=../index.php strona się zapętli (będzie wczytywała samą siebie) a zużycie procesora skoczy do 100%. Może nawet uda się w ten sposób zwiesić system lub wywalić serwer www - nie wiem, nie znam się, w każdym bądź razie jest to skutek niepożądany. 2. Kompletna masakra
Po kliknięciu na link http://server.com/index.php?id=http://moj_..._skrypt_php.txt można nieźle namieszać na serwerze. No chyba że chodzi ci o "ataki" typu umieszczenie na swoim serwerze:
to faktycznie w ten sposób zaatakować/podglądnąć kod źródłowy się nie da . -------------------- "Sumienie mam czyste, bo nieużywane."
|
|
|
5.05.2007, 00:12:38
Post
#91
|
|
Grupa: Zarejestrowani Postów: 690 Pomógł: 81 Dołączył: 6.04.2005 Skąd: Szczecin Ostrzeżenie: (0%) |
@Kicok pkt1 == pkt2 to że dodawane jest automatycznie rozszerzenie nie oznacza, że nie możesz się go pozbyć
@radex_p nie chodzi o samo includowanie, ale o sposób jaki się to robi -------------------- |
|
|
6.05.2007, 15:52:45
Post
#92
|
|
Grupa: Zarejestrowani Postów: 1 657 Pomógł: 125 Dołączył: 29.04.2006 Ostrzeżenie: (0%) |
1.
Po kliknięciu na link http://server.com/index.php?id=../index.php strona się zapętli (będzie wczytywała samą siebie) a zużycie procesora skoczy do 100%. Może nawet uda się w ten sposób zwiesić system lub wywalić serwer www - nie wiem, nie znam się, w każdym bądź razie jest to skutek niepożądany. Przy odpowiednich zabezpieczeniach serwer sam się uchroni:P I nie chodzi o same zabezpieczenia skryptu, ale niektóre serwery logują ip, i przy zbyt dużych "wejściach" serwer automatycznie blokuje skrypt/ip. No ale są bardziej wyrafinowane sposoby na spowodowanie ataku DoS (albo DDoS) -------------------- |
|
|
31.05.2007, 02:52:48
Post
#93
|
|
Grupa: Zarejestrowani Postów: 3 Pomógł: 0 Dołączył: 31.05.2007 Ostrzeżenie: (0%) |
hmm... trochę tu śmietnik... zgubiłem się gdzieś na 3-4 stronie
ale właściwie chodzi mi tylko o jedno... test skryptu logującego... jego oczywiście nie podam ale jeśli byłby ktoś tak miły to proszę o jego przełamanie(na pewno się da ... tak myślę ) poza logowaniem proszę o znalezienie błędów... wszystkich możliwych jakby ktoś miał trochę czasu i chęci adres www.peen.yoyo.pl PS czuje się jakbym popełniał samobójstwo (modli sie: oby nie złamał tego jakiś zwykły PHP coder ) ---------------- jeśli pobieram "dzial" metodą get i wewnątrz skryptu wstawiam prefix "./" oraz sufix w postaci rozszerzenia...(którego raczej staram się nie zdradzić) to w jakim stopniu zabezpieczam skrypt przed niepowołanymi danymi/skryptami?(wiem że o tym było trochę ale się pogubiłem trochę bardziej :/) co mi grozi jeśli nie ograniczam długości loginu i hasła w skrypcie do logowania? jeśli nie ograniczam też możliwości używania tagów html itp itd.... (konkretny przykład wpisanych danych... najlepiej od razu sprawdzony w skrypcie na stronie wyżej:P) jak bezpieczne są zmienne przechowywane w $_SESSION? czy jeśli przechowuje w nich login i hasło(forma md5) to jest to w miarę dobre rozwiązanie czy lepiej na prostych stronach unikać przechowywania loginu i hasła w ogóle(wprowadzanie loginu i hasła tylko na potrzeby konkretnego skryptu np. dodającego wpis na stronkę)? czy coś jeszcze chcę wiedzieć.... -myśli--myśli--myśli... chyba na razie nie |
|
|
31.05.2007, 18:53:07
Post
#94
|
|
Grupa: Zarejestrowani Postów: 690 Pomógł: 81 Dołączył: 6.04.2005 Skąd: Szczecin Ostrzeżenie: (0%) |
boo ;-)
ad1. Null byte attack ad2. nic jeśli później nie wyświetlasz danych przekazanych przez usera ad3. średnio bezpieczne zależy czy używasz tylko "gołej" tablicy $_SESSION i session_start czy też innych ficzerów ;-) -------------------- |
|
|
1.06.2007, 12:28:42
Post
#95
|
|
Grupa: Zarejestrowani Postów: 3 Pomógł: 0 Dołączył: 31.05.2007 Ostrzeżenie: (0%) |
ad boo. hmm... spróbuj zrobić tak żeby nie wywaliło braku strony bo właściwie to co zrobiłeś to nie błąd tylko taka jest nazwa strony której szukałeś :P(nadaje sie do zabezpieczeń w microsofcie :P)
ad1. hmmm jakoś się poprawi... ekhm a właściwie jak wygląda ten typ ataku (to jest coś z ../../../ itd?) hmm ad3. czy $_SESSION jest tak bezpieczne jak komputer i połączenie między klientem a serwerem? jeśli użyje https ... to jest jeden z tych ficzerow? domyślam się że w tablicy nie powinienem goło trzymać nazw pól "login" "pass" tylko jakieś identyfikatory(może zaszyfrowane ) trudne do odgadnięcia a każda wartość szyfrowana? :P PS hmm sorki za zabezpieczenia ogólne w dziale php EDIT: poprawiam poprawiam... usuwam podpuchę z pokazywaniem błędnego działu... robie listę dozwolonych działów... ale z tymi ficzerami to jeszcze będę musiał troche popracować bo w manualu PHP niewiele jest o sesjach...(albo nie umiem szukać) więc google się odwiedzi Ten post edytował peen 1.06.2007, 17:51:35 |
|
|
1.06.2007, 14:14:53
Post
#96
|
|
Grupa: Zarejestrowani Postów: 690 Pomógł: 81 Dołączył: 6.04.2005 Skąd: Szczecin Ostrzeżenie: (0%) |
ad ad boo, to jest błąd i tyle, co za problem przejechac stringa np strip_tags?
ad ad 1/ %00 kończy stringa czyli katalog/plik.php%00.html = katalog/plik.php ad ad3. ficzery = session.use_only_cookies + session_regenerate_id + session_save_path etc ;-) -------------------- |
|
|
1.06.2007, 18:47:30
Post
#97
|
|
Grupa: Zarejestrowani Postów: 3 Pomógł: 0 Dołączył: 31.05.2007 Ostrzeżenie: (0%) |
ad ad ad 1
wpisuje nazwę innego pliku znajdującego się w katalogu... + %00 teoretycznie wg tego co mówisz powinno mi się wyświetlić a wyświetlić a wyświetla się znany ci już błąd "Strony "(ukryta nazwa pliku)\0" nie znaleziono." hmm... jestem po prostu głupi i nie potrafię zrobić włamu na własną stronę ad ad ad boo poprawione... ale pewnie dalej gdzieś jest dziura ad ad ad 3 ehh to głębszy temat... z czasem się dopracuje PS wiesz po prostu przeczytam sobie troche na twojej stronce i na innych temu podobnych Ten post edytował peen 1.06.2007, 19:33:36 |
|
|
5.09.2007, 21:06:27
Post
#98
|
|
Grupa: Zarejestrowani Postów: 301 Pomógł: 25 Dołączył: 15.07.2007 Skąd: Olsztyn Ostrzeżenie: (0%) |
Czytam i czytam i już dobre pół godziny czytam i nie wydaje mi się żeby dało się coś złego zrobić z takim skryptem:
Nie można includować pliku z innego katalogu z innego serwera czy też z dysku twardego... Wiem dobrze, że includowanie któregokolwiek pliku z tego katalogu w którym znajduje się index nic złego nie zdziała... Więc, pod jakim względem jest ten skrypt niebezpieczny bo nie mogę się doczytać -------------------- Tutaj miał być jakiś mądry tekst. Miał być... No ale jest głupi tekst.
|
|
|
5.09.2007, 22:41:49
Post
#99
|
|
Grupa: Zarejestrowani Postów: 793 Pomógł: 32 Dołączył: 23.11.2006 Skąd: Warszawa Ostrzeżenie: (0%) |
po pierwsze ten skrypt nie działa
po drugie zamiast file_exists() a is_file(). Po trzecie, po prostu bym dozwolił tylko a-z i nie patyczkował. A właśnie zdałem sobie sprawę, że u mnie takie coś już nie wystąpi <lol> Ech to OOP, jednak ma jakieś plusy -------------------- Algorytmy w PHP, czy ktoś o tym słyszał?
Dlaczego tak mało kobiet programuje? ponieważ nie zajmują się głupotami. |
|
|
6.09.2007, 15:01:46
Post
#100
|
|
Grupa: Zarejestrowani Postów: 301 Pomógł: 25 Dołączył: 15.07.2007 Skąd: Olsztyn Ostrzeżenie: (0%) |
po pierwsze ten skrypt nie działa Faktycznie zgubiłem dwa ";" i nie domknąłem jednego nawiasu. Powinno być tak:
po drugie zamiast file_exists() a is_file(). Dzięki przyda się :] Po trzecie, po prostu bym dozwolił tylko a-z i nie patyczkował. Też dobre rozwiązanie :] Więc czy da się zrobić jakiś włam na aplikację opartą o taką funkcję (basename czy też dozwolenie znaków "a-z" + może "_" i "-") ? Chyba prawdopodobnie pewnie raczej zapewne na pewno nie -------------------- Tutaj miał być jakiś mądry tekst. Miał być... No ale jest głupi tekst.
|
|
|
Wersja Lo-Fi | Aktualny czas: 20.06.2024 - 01:09 |