Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [MySQL][PHP]Bezpiczeństwo mojego skryptu
Vion
post 17.02.2011, 17:52:56
Post #1





Grupa: Zarejestrowani
Postów: 112
Pomógł: 2
Dołączył: 27.06.2008

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


Witam
O to mój skrypt, jakie popełniłem błędy przy bezpieczeństwie. Jak powinienem się zabezpieczyć.

  1. $wynik = "SELECT * FROM shot WHERE shot_is_published ='1' and shot_id='".$_GET['id']."' ORDER BY RAND() LIMIT 1 ";
  2. $results=mysql_query($wynik);
  3. while($row = mysql_fetch_array($results)) {
  4. $image_id= $row['shot_id'];
  5. $image_filename= "shot/" . $image_id . ".jpg"; ?>
  6. <div class="post">
  7. <div class="entry">
  8. <p class="meta">Data dodania: <?php echo $row['shot_date_submitted'];?></p><br>
  9. <img src='<?php echo $image_filename; ?>'>
  10. </div>
  11. <div class="byline">
  12. <br>
  13. <p class="meta"><a type="button_count" share_url="epicshot.pl/view.php?id=<?php echo $row['shot_id']; ?>"name="fb_share">Share</a>
  14. <script src="http://static.ak.fbcdn.net/connect.php/js/FB.Share" type="text/javascript"></script></p>
  15. </div>
  16. </div>
  17. <?php }


--------------------
www.zapalara.pl
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 4)
Piogola
post 17.02.2011, 18:57:17
Post #2





Grupa: Zarejestrowani
Postów: 151
Pomógł: 36
Dołączył: 1.02.2011
Skąd: Warszawa

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


Nie filtrujesz zmiennej $_GET['id']. Strona podatna jest na SQL Injection


--------------------
Google Manual
Go to the top of the page
+Quote Post
Vion
post 17.02.2011, 20:00:37
Post #3





Grupa: Zarejestrowani
Postów: 112
Pomógł: 2
Dołączył: 27.06.2008

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


trochę poczytałem i zmieniłem na coś takiego:
  1. $id=(int)$_GET['id'];
  2. $id = trim($id);
  3. $id = htmlspecialchars($id);
  4. $wynik = "SELECT * FROM shot WHERE shot_is_published ='1' and shot_id='$id' ORDER BY RAND() LIMIT 1 ";
  5. $results=mysql_query($wynik);
  6. while($row = mysql_fetch_array($results)) {
  7. $image_id= $row['shot_id'];
  8. $image_filename= "shot/" . $image_id . ".jpg"; ?>
  9. <div class="post">
  10. <div class="entry">
  11. <p class="meta">Data dodania: <?php echo $row['shot_date_submitted'];?></p><br>
  12. <img src='<?php echo $image_filename; ?>'>
  13. </div>
  14. <div class="byline">
  15. <br>
  16. <p class="meta"><a type="button_count" share_url="epicshot.pl/view.php?id=<?php echo $row['shot_id']; ?>"name="fb_share">Share</a> <script src="http://static.ak.fbcdn.net/connect.php/js/FB.Share" type="text/javascript"></script></p>
  17. </div>
  18. </div>
  19. <?php }


--------------------
www.zapalara.pl
Go to the top of the page
+Quote Post
hyhyhy
post 17.02.2011, 20:27:10
Post #4





Grupa: Zarejestrowani
Postów: 135
Pomógł: 5
Dołączył: 6.02.2011

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


w zasadzie jestem początkujący i moge pocisnąć głupote, ale... może dorzuć mysql_real_escape_string() ?
Go to the top of the page
+Quote Post
Piogola
post 17.02.2011, 20:33:29
Post #5





Grupa: Zarejestrowani
Postów: 151
Pomógł: 36
Dołączył: 1.02.2011
Skąd: Warszawa

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


@Vion
Jeśli rzutujesz typ na zmienną $id to dalej nie musisz filtrować zmiennej, bo zmienna $id może być tylko liczbą.


--------------------
Google Manual
Go to the top of the page
+Quote Post

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: 14.08.2025 - 10:36