Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

16 Stron V  « < 2 3 4 5 6 > »   
Reply to this topicStart new topic
> Bezpieczeństwo skryptów PHP, Jak zabezpieczyć się przed włamaniem
kalu111
post 20.08.2006, 09:55:10
Post #61





Grupa: Zarejestrowani
Postów: 68
Pomógł: 0
Dołączył: 22.07.2006

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


A jakich powinno sie ustrzegac znakow w zmiennych przekazywanych drogą $_GET , $_POST itd., jeżeli zmienne te będa dalej wykorzystywane w skrypcie. Od razu powiem, ze nie chodzi mi o includowanie plikow, tylko o zwykle parametry, ktore maja wplyw na dalszy przebieg skryptu?
Czy zwykle stripslashes, strip_tags, trim lub funkcje zwiazane z mysql wystarcza?

Ten post edytował kalu111 20.08.2006, 09:56:06
Go to the top of the page
+Quote Post
iks
post 3.11.2006, 13:36:29
Post #62





Grupa: Zarejestrowani
Postów: 33
Pomógł: 0
Dołączył: 30.06.2003
Skąd: Katowice

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


A czy mój tok myślenia jest dobry? Mam zrobione logowanie, jęsli podane dane zgadzają sie:
  1. <?php
  2. if($bazapass == $zpass)
  3. {
  4. $_SESSION['userid'] = $userid;
  5. $_SESSION['nick'] = $podanylogin;
  6. $_SESSION['level'] = $kto;
  7. }
  8. ?>

A pliki includowane przez panel zaczynajuą sie od:
  1. <?php
  2. if(!isset($_SESSION['level']) || $_GET['k'] > $_SESSION['level'])
  3. {
  4. echo ' SPIEPRZAJ DZIADU!';
  5. }
  6. ?>

gdzie zmienna $_GET['k'] wskazuje katalog z którego ma być include() modułu.

Ten post edytował iks 3.11.2006, 13:37:36


--------------------
iksor
Go to the top of the page
+Quote Post
Saddam92
post 29.11.2006, 13:40:53
Post #63





Grupa: Zarejestrowani
Postów: 69
Pomógł: 0
Dołączył: 17.11.2006

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


a czy moglibyście powiedzieć czy ten skrypt jest bezpieczny??
system includowania stron
  1. <?php
  2. define ('_ABCDE_F', TRUE);
  3. ....
  4. ....
  5. if ($_GET['mode'] == "") {$_GET['mode'] = 'main';}
  6. if (file_exists("strony/$_GET['mode'".".php")) {
  7. include "strony/$_GET['mode'".".php";
  8. }else {
  9. echo "Nie znaleziono pliku !!";
  10. }
  11. ?>
oraz w pliku includowanym:
  1. <?php
  2. defined ('_ABCDE_F') or die('Bezpośrednie wywołanie pliku jest zabronione');
  3. /* Reszta pliku */
  4. ?>
co o tym myślicie??

Ten post edytował Saddam92 29.11.2006, 13:43:18
Go to the top of the page
+Quote Post
Termit_
post 30.11.2006, 21:36:25
Post #64





Grupa: Zarejestrowani
Postów: 44
Pomógł: 0
Dołączył: 11.06.2005
Skąd: Gostyń

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


A jak ktoś poda w zmiennej coś typu "../../../../root/jakiswaznyplik"?


--------------------
@nospor: trzymajcie się. Wszystko będzie dobrze!
Go to the top of the page
+Quote Post
Saddam92
post 30.11.2006, 23:17:28
Post #65





Grupa: Zarejestrowani
Postów: 69
Pomógł: 0
Dołączył: 17.11.2006

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


@termit: to do mnie było questionmark.gif
jesli tak to raczej nie widze możliwości..


chyba ze php obsługuje takie nielogiczne skrypty jak sciezka do pliku wygladajac tak:
strony/../../../../root/jakis_wazny_plik
i to w dodatku trzeba trafić idealnie żeby taki plik istniał w odpowiednim katalogu... troche trudne i nie logiczne..

co na to spece od php??
Go to the top of the page
+Quote Post
Najki
post 1.12.2006, 10:26:12
Post #66





Grupa: Zarejestrowani
Postów: 190
Pomógł: 0
Dołączył: 12.02.2004
Skąd: Poznań

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


Przed chwilą przeczytałem ten artykuł i nieco się zmieszałem. W jaki więc sposób powinniśmy upload'ować pliki na serwer? Szczególnie grafiki takie jak avatary użytkowników? Przyznaję, że wystraszyłem się o kilka swoich stron.

Szukałem, ale nie znalazłem nic innego na ten temat. Żadne ze znalezionych przeze mnie przykładów nie zawierają żadnych dodatkowych zabezpieczeń. Łatwiej znaleźć przykład kodu omijającego te zabezpieczenia niż faktycznego zabezpieczenia. Ktoś ma jakieś sugestie?


Spytam: czy zabezpiecza mnie fakt, że np. wszystkim przesłanym plikom (niby obrazkom) nadaję rozszerzenie jpg (konwertując wcześniej inne formaty grafik na jpg) ? Teoretycznie powinno mnie to zabezpieczyć, ponieważ serwer nie jest skonfigurowany tak, aby interpretować pliki jpg jako kod php. Ale co z innymi językami, np. Python wspomniany w powyższym artykule?

A jeśli to nie zapewnia mi bezpieczeństwa to czy upload'owanie plików poza document_root wystarczy? Wtedy musiałbym je odczytywać dodatkowym skryptem php pobierającym ich zawartość i wypluwającym ją do przeglądarki.

Ten post edytował Najki 1.12.2006, 10:36:19


--------------------
Go to the top of the page
+Quote Post
mariuszn3
post 1.12.2006, 13:38:15
Post #67





Grupa: Zarejestrowani
Postów: 352
Pomógł: 0
Dołączył: 22.01.2006

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


Nigdy nie powinno się ufać nagłówkom http, nagłówki te wstawia agent, którym się posługuje użytkownik a nie zawsze to musi być przeglądarka, może to być po prostu skrypt napisany przez kogoś, który chce wyciągnąć ważne informacje z naszego serwera.
W powyższym przypadku powinieneś po prostu użyć funkcji getimagesize() ona po zawartości pliku oceni jakiego typu jest plik czyli przy próbie przesłania skryptu php wywali błąd, który oczywiście możesz przechwycić i odrzucić plik.
Go to the top of the page
+Quote Post
tumeks
post 5.12.2006, 19:01:57
Post #68





Grupa: Zarejestrowani
Postów: 123
Pomógł: 0
Dołączył: 10.11.2003
Skąd: Poznań

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


Czyli jeśli będę miał np. wstawiony kod:
  1. <?php
  2. if ($_GET['page'] == '')
  3. $_GET['page'] = 'news';
  4. if(file_exists($_GET['page'].'.php')){
  5. include($_GET['page'].'.php');
  6. } else 
  7. echo '<div id="blad">Nie znaleziono pliku.</div>';
  8. ?>


To moja strona będzie bezpieczna ?
Go to the top of the page
+Quote Post
Sedziwoj
post 7.12.2006, 13:50:49
Post #69





Grupa: Zarejestrowani
Postów: 793
Pomógł: 32
Dołączył: 23.11.2006
Skąd: Warszawa

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


@Najki jest proste rozwiązanie nadanie pliku własnej nazwy.
Ja mam po prostu numerowane pliczki, i każdy jeśli rozpoznam np. image/png to zapisuje {numer}.png a nazwa wysłanego co najwyżej służy do opisu w bazie co jako string nie jest niebezpieczne.
Co dziwne jest funkcja do sprawdzania mime mianowicie mime_content_type ale szukając na jej temat znalazłem tylko pliki magic.mime niestety jakoś nie udało mi się tego użyć. Choć przyznam, że tylko chwile siedziałem nad tym.

Mam nadzieję, że dobrze zrozumiałem naturę problemu.


--------------------
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
Saddam92
post 8.12.2006, 21:42:34
Post #70





Grupa: Zarejestrowani
Postów: 69
Pomógł: 0
Dołączył: 17.11.2006

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


no dobrze.. tylko ze tutaj jest sprawdzany typ pliku.. a jak by do tego dodac jeszcze sprawdzanie rozszerzenia przesyłanego pliku questionmark.gif
Go to the top of the page
+Quote Post
Sedziwoj
post 9.12.2006, 12:08:30
Post #71





Grupa: Zarejestrowani
Postów: 793
Pomógł: 32
Dołączył: 23.11.2006
Skąd: Warszawa

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


bardziej wiarygodną rzeczą jest mime, bo plik image/jpeg moze mieć rozszerzenie jpg jpeg jpe i wiele innch dziwnych, czy po prostu niepoprawnych, zdarzało mi się że miałem plik o rozszerzeniu jpeg a program graficzny poinformował mnie że to jest gif i zmienił rozszerzenie.
Ogólnie lepiej oprzeć na mime a nazwę i rozszerzenie tworzyć samemu, bo oprócz rozszerzenia mogą być "błędne" nazwy plików.

Co do podanej przezemnie funkcji, to chyba po prostu zrobię ją sam (dość proste) tylko muszę znaleźć opis większej liczby formatów. Ale to będzie dość proste. (tak mi się wydaje)

Ale ogólnie po prostu nie możemy polegać na tym co mamy przesłane czy to mime czy to rozszerzenie.
Mimo wszystko jestem za tym aby plikom nadawać własne nazwy.


--------------------
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
cadavre
post 9.12.2006, 13:50:07
Post #72





Grupa: Zarejestrowani
Postów: 472
Pomógł: 7
Dołączył: 7.12.2005
Skąd: Gliwice

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


http://pl.php.net/manual/pl/function.getimagesize.php
a lista mime'ów, które php obsługuje jako graficzne jest tu
http://pl.php.net/manual/pl/function.image...o-mime-type.php

Wszystkie typy mime znajdziesz na googlach:
http://www.google.pl/search?hl=pl&q=mime+types


--------------------
Silesian PHP User Group - www.spug.pl
Symfony2, OAuth2, budowanie API - masz pytania? Pisz!
Go to the top of the page
+Quote Post
Sedziwoj
post 10.12.2006, 18:41:56
Post #73





Grupa: Zarejestrowani
Postów: 793
Pomógł: 32
Dołączył: 23.11.2006
Skąd: Warszawa

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


No to ten problem da się rozwiązać biggrin.gif
Wystarczy wykorzystać:
0 string GIF image/gif
0 beshort 0xffd8 image/jpeg
0 string \x89PNG\x0D\x0A\x1A\x0A\x00\x00\x00\x0DIHDR image/png

lub przy obrazkach można jak cadavre napisał wykorzystać getimagesize, a dokładniej coś co jest w manualu http://pl.php.net/manual/pl/function.getimagesize.php" title="Zobacz w manualu php" target="_manual

Ale też można rozpoznać inne typy:
0 string BZh application/x-bzip2
itd.
Już sobie odpowiedni kod wyklepałem, więc na przyszłość będę miał, no i to zagadnienie już mam troszkę rozpracowane.


--------------------
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
mariuszn3
post 10.12.2006, 18:49:29
Post #74





Grupa: Zarejestrowani
Postów: 352
Pomógł: 0
Dołączył: 22.01.2006

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


Nie wynajdujcie koła na nowo. To wszystko już zostało dawno opracowane przez programistów php.
Jeśli chcecie wykryć typ pliku obrazu wtedy w zupełności wystarcza getimagesize()
Natomiast jeśli jakiegokolwiek pliku to skorzystajcie z rozszerzenia Fileinfo i funkcji finfo_file()
Go to the top of the page
+Quote Post
Sedziwoj
post 10.12.2006, 20:00:12
Post #75





Grupa: Zarejestrowani
Postów: 793
Pomógł: 32
Dołączył: 23.11.2006
Skąd: Warszawa

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


No tak jak ma się sklerozę... to trzeba się narobić biggrin.gif
Ale głupio się czuję, przecież 'wiedziałem' że ta funkcja jest :/
No nic ale informacje i tak nie poszły na marne bo jeśli się pracuje u siebie na windowsie to trzeba mieć plik z mime (chyba, że znów popisuję się inteligencją czy raczej pamięcią)


--------------------
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
starach
post 31.01.2007, 13:44:38
Post #76





Grupa: Zarejestrowani
Postów: 999
Pomógł: 30
Dołączył: 14.01.2007
Skąd: wiesz ?

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


Zabezpieczanie tablicy $_GET ( Żywcem wyjęte z maincore.php w php-Fusion )
  1. <?php
  2. public function check_get()
  3. {
  4. foreach ($_GET as $check_url) {
  5. if ((eregi("<[^>]*script*"?[^>]*>", $check_url)) || (eregi("<[^>]*object*"?[^>]*>", $check_url)) ||
  6. (eregi("<[^>]*iframe*"?[^>]*>", $check_url)) || (eregi("<[^>]*applet*"?[^>]*>", $check_url)) ||
  7. (eregi("<[^>]*meta*"?[^>]*>", $check_url)) || (eregi("<[^>]*style*"?[^>]*>", $check_url)) ||
  8. (eregi("<[^>]*form*"?[^>]*>", $check_url)) || (eregi("([^>]*"?[^)]*)", $check_url)) ||
  9. (eregi(""", $check_url))) 
  10. {
  11. return false;
  12. } else {
  13. return true;
  14. }
  15. }
  16. ?>
Nie rozumiem tylko co robi ta linijka:
Kod
eregi("\([^>]*\"?[^)]*\)", $check_url)

Z Wyrażeń regularnych to ja jestem cienki sadsmiley02.gif
Go to the top of the page
+Quote Post
Sedziwoj
post 2.02.2007, 03:30:17
Post #77





Grupa: Zarejestrowani
Postów: 793
Pomógł: 32
Dołączył: 23.11.2006
Skąd: Warszawa

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


Tak mnie zastanawia co się stanie jeśli $_GET nie istnieje lub nie jest tablicą... (nie chce mi się teraz testować).

A jeszcze do podanego na drugiej stronie skryptu z flock, jest błędny, ponieważ ta funkcja zwraca true jeśli się jej uda a false jeśli nie, więc może wyjść, że plik jest używany zwróci false ale że nie sprawdzamy co zwraca skrypt leci dalej i robią się kłopoty.
Trzeba więc sprawdzać co zwraca, gdzieś zamieściłem jedną propozycję ale była na tyle prosta (jak i mogąca zawiesić skrypt) że jej nie podam.


--------------------
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
insenic
post 25.02.2007, 16:21:27
Post #78





Grupa: Zarejestrowani
Postów: 19
Pomógł: 0
Dołączył: 9.02.2007

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


Czy zabezpieczenie katalogu przez .htaccess jest 100% bezpieczne? Chciałbym trzymać konfigurację (między innymi hasło do mysql) w danym katalogu w plikach *.ini. Wiem, że istnieją inne metody zabezpieczania takich danych, ale czy .htaccess jest skuteczna?
Go to the top of the page
+Quote Post
sobstel
post 26.02.2007, 08:51:32
Post #79





Grupa: Zarejestrowani
Postów: 853
Pomógł: 25
Dołączył: 27.08.2003
Skąd: Katowice

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


Cytat(insenic @ 25.02.2007, 16:21:27 ) *
Czy zabezpieczenie katalogu przez .htaccess jest 100% bezpieczne? Chciałbym trzymać konfigurację (między innymi hasło do mysql) w danym katalogu w plikach *.ini. Wiem, że istnieją inne metody zabezpieczania takich danych, ale czy .htaccess jest skuteczna?


nie ma metod całkowicie bezpiecznych, jednak ta jest jedną z lepszych na osiągnięcie tego co chcesz.

Ten post edytował sopel 26.02.2007, 08:51:44


--------------------
"If debugging is the process of removing bugs, then programming must be the process of putting them in..."
sobstel.org
Go to the top of the page
+Quote Post
Ivellios
post 2.03.2007, 23:03:09
Post #80





Grupa: Zarejestrowani
Postów: 18
Pomógł: 0
Dołączył: 2.03.2007

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


Witam, chciałbym się was zapytać, czy przedstawiony przeze mnie poniżej kod ma coś wspólnego z bezpieczeństwem tongue.gif

  1. <?php 
  2. mysql_pconnect("localhost", "NAZWA_BAZY_DANYCH", "HASŁO"); 
  3. mysql_select_db("JAKAŚTAM_TABELA"); 
  4. $id = addslashes($_GET['id']); 
  5. $sql = "SELECT * FROM nuke_pages WHERE pid = '$id'"; 
  6.  
  7. $result = mysql_query($sql); 
  8.  
  9.  
  10. while($row = mysql_fetch_array($result)) 
  11. { 
  12.  
  13. ?> 
  14. <table><tr><td class="navpic" align="center"><font class="block-title"><strong><?php echo $row['title']; ?></strong></font></td></tr>
  15. <tr><td class="row1" align="justify"><font class="content"><?php echo $row['page_header']; ?><BR><BR><?php echo $row['text']; ?><BR><BR><?php echo $row['page_footer']; ?></font><BR><BR></td></tr></table><br>
  16. <?
  17. } 
  18. ?>

Korzystam obecnie z PHP Nuke i postanowiłem stworzyć własnego CMS'a do obsługi mojej strony www.paranormalium.pl Budując stronę główną nieopartą na tej dziurawej krowie, mając przy tym nikłe pojęcie o php, musiałem niestety zrobić małą, że tak to ujmę, prowizorkę, czyli same include i inne proste rzeczy...

Potrzebuję tylko stworzyć jakiś w miarę prosty i bezpieczny zarazem skrypt, który wyświetlałby artykuły/linki/opisy książek i inne dane zapisane w bazie. Muszę się za to zabrać szybko bo się ostatnio na mnie uwzięła grupa hakerów niszczących strony o tematyce paranaukowej tongue.gif
Go to the top of the page
+Quote Post

16 Stron V  « < 2 3 4 5 6 > » 
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 Wersja Lo-Fi Aktualny czas: 28.03.2024 - 14:05