Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [MySQL][PHP]Bezpiczeństwo mojego skryptu
Forum PHP.pl > Forum > Przedszkole
Vion
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 }
Piogola
Nie filtrujesz zmiennej $_GET['id']. Strona podatna jest na SQL Injection
Vion
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 }
hyhyhy
w zasadzie jestem początkujący i moge pocisnąć głupote, ale... może dorzuć mysql_real_escape_string() ?
Piogola
@Vion
Jeśli rzutujesz typ na zmienną $id to dalej nie musisz filtrować zmiennej, bo zmienna $id może być tylko liczbą.
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.