Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Closed TopicStart new topic
> Czy dobrze zabezpieczyłem skrypt przed sql injection?
Rookie
post 23.08.2009, 12:04:31
Post #1





Grupa: Zarejestrowani
Postów: 130
Pomógł: 1
Dołączył: 1.03.2008
Skąd: Olsztyn

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


Witam,
Napisałem obsługę edycji filmów w danych i starałem się go zabezpieczyć przed sql injection, jednak nie wiem czy mi się udało.
Na tą stronę można się dostać tylko poprzez zalogowanie, więc mój atak sprawdzający skuteczność polegał na zaznaczeniu zamiast danych edytowanego filmu to danych użytkownika.
Skrypt wygląda następująco:
Plik add.php:
  1. if (isset($_GET[edytuj])) {
  2. header("Location: edit.php?edytuj=$_GET[edytuj]");
  3. exit();
  4. }
  5.  

  1. <td valign="top" class="trescc">
  2. <a href="add.php?usun='.$dane[id_filmu].'"><img src="graf/usun.png" alt="Usuń" style="border: 0px;" title="Usuń"></a>
  3. </td>

Plik edit.php:
  1. <?php
  2. require('conn.php');
  3. $edytuj=mysql_real_escape_string(trim($_GET[edytuj]));
  4. $mysql=mysql_query("SELECT * FROM filmy WHERE id_filmu='$edytuj'") or die (mysql_error());
  5. $ile=mysql_num_rows($mysql);
  6. if($ile != 1){
  7. header("Location: add.php");
  8. exit();
  9. }
  10. require_once('funkcje.php');
  11. naglowek('Edytuj');
  12. while($edit = mysql_fetch_assoc($mysql)) {
  13. $wys_tytul=($edit[tytul]);
  14. $wys_ilosc=($edit[ilosc]);
  15. $wys_pochodzenie=($edit[pochodzenie]);
  16. $wys_typ=($edit[typ]);
  17. $wys_rodzaj=($edit[rodzaj]);
  18. }
  19. ?>

Próbowałem wpisać adres tak:
Cytat
http://localhost/FILMY/add.php?edytuj=0 UNION SELECT `login`,`imie`,`nazwisko`,`email`,`password` FROM `user` WHERE `id` = 1 /*

Lecz na szczęście z niepowodzeniem ;p
Dodam, że id jest dobre, id=1 to akurat admin
Jeżeli, ktoś się na tym zna lepiej, niech napisze odpowiednio sprzeparowanego linka, ażeby wyświetlić dane użytkownika admin wpolu z filmem.
A no i jeszcze wyświetlane dane:
  1. <tr class="hov">
  2. <td valign="top" class="trescc" align="right">1&nbsp;</td>
  3. <td valign="top" class="trescc">
  4. <?php echo $wys_tytul; ?>
  5. </td>
  6. <td valign="top" class="trescc">
  7. <?php echo $wys_ilosc; ?>
  8. </td>
  9. <td valign="top" class="trescc">
  10. <?php echo $wys_pochodzenie; ?>
  11. </td>
  12. <td valign="top" class="trescc">
  13. <?php echo $wys_typ; ?>
  14. </td>
  15. <td valign="top" class="trescc">
  16. <?php echo $wys_rodzaj; ?>
  17. </td>
  18. </tr>

Poproszę jakiegoś eksperta o potwierdzenie bezpieczeństwa skryptu bądź podanie linka do wyświetlenia danych użytkownika w miejscu wyświetlania filmu.
Z góry dziękuję.
Go to the top of the page
+Quote Post
erix
post 23.08.2009, 20:02:44
Post #2





Grupa: Moderatorzy
Postów: 15 467
Pomógł: 1451
Dołączył: 25.04.2005
Skąd: Szczebrzeszyn/Rzeszów




Temat: SQL Injection Insertion

Naprawdę ciężko?


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

ZCE :: Pisząc PW załączaj LINK DO TEMATU i TYLKO w sprawach moderacji :: jakiś błąd - a TREŚĆ BŁĘDU? :: nie ponaglaj z odpowiedzią via PW!
Go to the top of the page
+Quote Post

Closed 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: 7.07.2025 - 22:29