Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

2 Stron V   1 2 >  
Reply to this topicStart new topic
> [php] kod dodający do bazy, czy dobrze pod względem bezpieczeństwa ?
-jorgus-
post
Post #1





Goście







Jak pod względem bezpieczeństwa przeorganizować ten kod ? Chyba, że zabieczenia dodane są już wystarczające ?

  1. <?php
  2. $sql = "SELECT news.*, komentarze.nick as knick, komentarze.nr as knr, komentarze.t
    resc as ktresc, 
  3. komentarze.data as kdata from news, komentarze where news.id = komentarze.newsID AND 
  4. komentarze.newsID=$id ORDER BY kdata ASC";
  5.  
  6. $wynik = @mysql_query ($sql);
  7. while ($news = @mysql_fetch_array ($wynik))
  8. {
  9.  
  10. $knr=stripslashes($news['knr']);
  11. $ktresc=stripslashes($news['ktresc']);
  12. $knick=stripslashes($news['knick']);
  13. $kdata=stripslashes($news['kdata']);
  14. $i++;
  15.  
  16.  
  17. echo '<h4> #' . $i . '</h4><p class="tresc">' . $ktresc . '</p><p class="autor">Napisał: ' . $knick . ' - <i>'
  18.  . $kdata . '</i></p>';
  19.  
  20.  
  21. }
  22.  
  23.  
  24.  print "<H3>Komentarz:</H3>";
  25. //echo "<form method="POST" action="nowy.php">";
  26.  print "<FORM METHOD=POST><INPUT TYPE="hidden" NAME="id" VALUE="$id">";
  27.  print "<B>Autor</B><BR><INPUT TYPE="text" NAME="nick" VALUE="$nick" SIZE=60><BR> ";
  28.  print "<B>Treść:</B><BR><TEXTAREA NAME="srodek" ";
  29.  print "ROWS=10 COLS=60>$srodek</TEXTAREA><BR>";
  30.  print "<INPUT TYPE="submit" VALUE="dodaj" name="gd">";
  31.  print "</FORM>";
  32.  
  33.  
  34. if ($gd=='dodaj') { 
  35.  
  36.  
  37. $srodek = addslashes(nl2br(htmlentities($srodek))); 
  38.  $nick = addslashes(htmlentities($nick));
  39.  
  40. if ($tresc && $nick && $nick!=admin) {
  41. $zapytanie = "INSERT INTO komentarze (newsID, tresc, nick, "." data) VALUES ('$id', '$srodek', '$nick', "." NOW());";
  42.  $wynik = mysql_query ($zapytanie); 
  43. header("Location: url");
  44. }
  45. ?>
Go to the top of the page
+Quote Post
bigZbig
post
Post #2





Grupa: Zarejestrowani
Postów: 740
Pomógł: 15
Dołączył: 23.08.2004
Skąd: Poznań

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


Wartosc id w formularzu tez mozna podmienic wiec ja bym rowniez te wartosc sprawdzil.


--------------------
bigZbig (Zbigniew Heintze) | blog.heintze.pl
Go to the top of the page
+Quote Post
-jorgus-
post
Post #3





Goście







Cytat(bigZbig @ 2.08.2006, 07:59 ) *
Wartosc id w formularzu tez mozna podmienic wiec ja bym rowniez te wartosc sprawdzil.


tzn jak ?
Go to the top of the page
+Quote Post
NetJaro
post
Post #4





Grupa: Zarejestrowani
Postów: 475
Pomógł: 0
Dołączył: 1.04.2005
Skąd: Warszawa

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


Może stworzyć formularz u siebie np. na localhost'ie odwołujący się do Twojego skryptu smile.gif Tzw. podmiana formularzy.
Go to the top of the page
+Quote Post
-jorgus-
post
Post #5





Goście







acha no, a jak zabezpieczyć ? ktoś w poprzednim poście pisał 'sprawdzić', ale jak sprawdzić, srobić sesje dla id np. ?
Go to the top of the page
+Quote Post
bigZbig
post
Post #6





Grupa: Zarejestrowani
Postów: 740
Pomógł: 15
Dołączył: 23.08.2004
Skąd: Poznań

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


Cytat(jorgus @ 2.08.2006, 09:14 ) *
tzn jak ?

Pytasz jak mozna podmienic, czy jak sprawdzic?


--------------------
bigZbig (Zbigniew Heintze) | blog.heintze.pl
Go to the top of the page
+Quote Post
NetJaro
post
Post #7





Grupa: Zarejestrowani
Postów: 475
Pomógł: 0
Dołączył: 1.04.2005
Skąd: Warszawa

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


Aby sprawdzić, sprawdzasz, czy HTTP_REFER zawiera dane Twojego serwera ;-)
Go to the top of the page
+Quote Post
bigZbig
post
Post #8





Grupa: Zarejestrowani
Postów: 740
Pomógł: 15
Dołączył: 23.08.2004
Skąd: Poznań

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


Mowiac sprawdzic mialem na mysli np. czy wartosc id jest liczba lub czy nie zawiera np. znaku srednika.


--------------------
bigZbig (Zbigniew Heintze) | blog.heintze.pl
Go to the top of the page
+Quote Post
nospor
post
Post #9





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




Oj panowie, nie pastwijcie sie nad chlopakiem.... winksmiley.jpg
Niech se poczyta:
http://forum.php.pl/index.php?showtopic=23258&st=0
http://forum.php.pl/index.php?showtopic=30056&st=0


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

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
Athlan
post
Post #10





Grupa: Developerzy
Postów: 823
Pomógł: 12
Dołączył: 18.12.2005

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


Cytat
Aby sprawdzić, sprawdzasz, czy HTTP_REFER zawiera dane Twojego serwera ;-)

chyba HTTP_REFERER smile.gif
a dokładniej $_SERVER['HTTP_REFERER'];

pozdraiwam smile.gif


--------------------
Portfolio: Vgroup.pl | athlan.pl | Test.php.pl - sprawdź się z wiedzy o PHP i ułóż własne pytania!
Pomogłem? Kliknij pod postem.
Go to the top of the page
+Quote Post
-jorgus-
post
Post #11





Goście







  1. <?php
  2. $_GET['id'] = mysql_escape_string(intval($_GET['id']));
  3. ?>


tak można to id przepuścić i bedzie ok ?

a tym REFEREM to nie wiem jak sad.gif


a reszta z tego kodu oprócz $id byłaby ok pod względem bezpieczeństwa ?
Go to the top of the page
+Quote Post
SongoQ
post
Post #12





Grupa: Przyjaciele php.pl
Postów: 2 923
Pomógł: 9
Dołączył: 25.10.2004
Skąd: Rzeszów - studia / Warszawa - praca

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


Referer da sie obejsc, wiec nie jest to dobrym rozwiazaniem.


--------------------
Go to the top of the page
+Quote Post
Athlan
post
Post #13





Grupa: Developerzy
Postów: 823
Pomógł: 12
Dołączył: 18.12.2005

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


Cytat
Referer da sie obejsc, wiec nie jest to dobrym rozwiazaniem.


powiedz jak, jeżeli można... wiesz teraz myślę nad zabezpieczeniami i chce wiedzieć jak byś mógł obejść mój referer ?

pozdrawiam smile.gif


--------------------
Portfolio: Vgroup.pl | athlan.pl | Test.php.pl - sprawdź się z wiedzy o PHP i ułóż własne pytania!
Pomogłem? Kliknij pod postem.
Go to the top of the page
+Quote Post
nospor
post
Post #14





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




Cytat
powiedz jak, jeżeli można... wiesz teraz myślę nad zabezpieczeniami i chce wiedzieć jak byś mógł obejść mój referer
Ja przykladowo tego nie wiem, ale wiem, ze moj firewall blokuje REFERER, przez co dany serwer nie dostaje tego badziewia. I jak mi ktos kiedys stronke zabezbieczyl REFEREREM, to musialem firewall'a wylaczyc by polatac po formularzach.... bardzo wnerwiajace zabezpieczenie i zniechecajace do danej stronki. Bo zeby po niej polatac to musze miec wyłączonego FireWalla


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

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
-Gość-
post
Post #15





Goście







Cytat
Ja przykladowo tego nie wiem, ale wiem, ze moj firewall blokuje REFERER, przez co dany serwer nie dostaje tego badziewia. I jak mi ktos kiedys stronke zabezbieczyl REFEREREM, to musialem firewall'a wylaczyc by polatac po formularzach.... bardzo wnerwiajace zabezpieczenie i zniechecajace do danej stronki. Bo zeby po niej polatac to musze miec wyłączonego FireWalla


no to jak polecacie, bo już zaczynałem się wgryzać w tego REFERER'a, ale skoro takie oproblemy to nie stosuje, więc jak najlepiej ?
Go to the top of the page
+Quote Post
SongoQ
post
Post #16





Grupa: Przyjaciele php.pl
Postów: 2 923
Pomógł: 9
Dołączył: 25.10.2004
Skąd: Rzeszów - studia / Warszawa - praca

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


Cytat
powiedz jak, jeżeli można... wiesz teraz myślę nad zabezpieczeniami i chce wiedzieć jak byś mógł obejść mój referer ?


W php wysylajac do serwera takie cos:

fputs($rSocketOpen, "Referer: http://forum.php.pl/r/n");

Patrz funkcja fopen - pisze jak byk w manualu.

Kolejny przyklad FF i odpowiednia wtyczka ma mozliwosc zmiany feferera. Nie wiem czy wiesz ale referer jest wysylany przez przegladarke a nie serwer.

A tak pozatym to polecam przeczytac rfc http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html


--------------------
Go to the top of the page
+Quote Post
-jorgus-
post
Post #17





Goście







no tak jak to w końcu, co Wy używacie ? bo dalej nie wiem, linki przeczytałem, ale i tak nie wiem.

A tak zazwyczaj to jak to się zabepiecza ?
Go to the top of the page
+Quote Post
NetJaro
post
Post #18





Grupa: Zarejestrowani
Postów: 475
Pomógł: 0
Dołączył: 1.04.2005
Skąd: Warszawa

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


OK, dobra bo się czuje winny tongue.gif

Ew. możesz w formularzu na swojej stronie dać jakąś sesje ($_SESSION['formularz'] = true;) i sprawdzać czy ta sesja istnieje. Nikomu nie chce sie bawić w ten sposób, zwłaszcza, że mozna stworzyć bardziej skomplikowane nazwy i wartości sesji smile.gif
Go to the top of the page
+Quote Post
bigZbig
post
Post #19





Grupa: Zarejestrowani
Postów: 740
Pomógł: 15
Dołączył: 23.08.2004
Skąd: Poznań

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


Chłopaki (przepraszam jesli wypowiadała tu się jakas kobieta) po co te sesje i referery? Chodzi o to aby na serwerze odbierac bezpieczne dane, do czego moim skromnym zdaniem wystarczy wyeskejpowac lub usunąc potencjalnie niebezpieczne znaki typu srednik, cudzyslowy itp. Moze w wyniku takich minimalistycznych dzialan dodam do bazy bzdury, ale nie utrace danych ani nie dopuszcze do wykonania niebezpiecznego kodu.


--------------------
bigZbig (Zbigniew Heintze) | blog.heintze.pl
Go to the top of the page
+Quote Post
Athlan
post
Post #20





Grupa: Developerzy
Postów: 823
Pomógł: 12
Dołączył: 18.12.2005

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


@bigZbig - a mnie wkurza jak np mi wypełniaja formularz z cudzej strony i odwołuje się on do mojego linka, który zapisuje te dane... poza tym na tym polegją m.in. boty - maja formularz i jazda...

może te sesje jednorazowe to rzeczywiście niezły pomysł... tworzona zostaje przy wyswietleniu formularza i niszczona po akcjach nastąpionych po wykonaniu żądania (unset" title="Zobacz w manualu php" target="_manual)

co Wy na to? smile.gif


--------------------
Portfolio: Vgroup.pl | athlan.pl | Test.php.pl - sprawdź się z wiedzy o PHP i ułóż własne pytania!
Pomogłem? Kliknij pod postem.
Go to the top of the page
+Quote Post

2 Stron V   1 2 >
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 Aktualny czas: 20.08.2025 - 17:14