Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: $_session, zabezpieczenie
Forum PHP.pl > Forum > PHP
pavlaq
Witam, dzis piszac skrypt natknalem sie na takie cos. Mm sobie o to ja link

  1. omnie.php?dane=edytuj&login=


po znaku = dodawany jest nick zalogowanej osoby dzieki $_SESSION['login'];

no i loguje sie na nick test, klikam sobie w edytuj dane wypelniam formularz jest gicik edytuje mi rekordy w bazie dla nicku "test"

a teraz zalozmy ze zamiast

  1. omnie.php?dane=edytuj&login=test

wpisze sobie

  1. omnie.php?dane=edytuj&login=demo


i co? wyskakuje mi formularz uzytkownika demo . To latwo zabezpieczylem jednym if'em

ale co to? klikam sobie w moje konto edytuj dane i.... okazuje sie ze przejalem sesje dla uzytkownika demo i jest zalogowany jako on a nie jako test. Jak zabezpieczyc takie cos?

o to skrypt mojego logowania

  1. <?php
  2.  
  3. require "config.php";
  4.  
  5. connection(); 
  6. include "header.php";
  7. if($_GET['logowanie']==formularz)
  8. {
  9. echo '<form action="loguj.php?logowanie=zaloguj" method="post">
  10. Podaj login <input type="text" name="login" /> <br><br>
  11. Podaj haslo <input type="password" name="haslo" /> <br><br>
  12. <input type="submit" value="Zaloguj" />
  13. </form>';
  14. }
  15. elseif ($_GET['logowanie']==zaloguj)
  16. {
  17.  
  18. $l=$_POST['login'];
  19. $h=$_POST['haslo'];
  20. $zapytanie="select login,haslo from uzytkownicy where login='$l' and haslo='$h'";
  21. $wynik=mysql_query($zapytanie);
  22. $wiersz=mysql_fetch_array($wynik);
  23. if($wiersz){
  24.  echo "<center>Autoryzacja ... <br /> <br /><img src=theme/loading.gif ></center>";
  25. $_SESSION['login']=$wiersz[0];
  26. $_SESSION['haslo']=$wiersz[1];
  27.  ?>
  28.  <script LANGUAGE="JavaScript" TYPE="text/javascript">
  29. setTimeout("window.location.replace('konto.php')", 3000);
  30.  </SCRIPT> 
  31.  
  32. <?
  33.  }
  34. else
  35. {
  36. echo "podales bledny login lub haslo <br>";
  37.  ?>
  38.  <script LANGUAGE="JavaScript" TYPE="text/javascript">
  39. setTimeout("window.location.replace('loguj.php?logowanie=formularz')", 3000);
  40.  </SCRIPT> 
  41.  
  42. <?
  43. }
  44. }
  45. include "footer.php";
  46. ?>


i strona z formularzem

  1. <?php
  2. require "config.php";
  3. connection(); 
  4. include "header.php";
  5.  
  6. if(isset($_GET['dane']) && $_GET['dane']=='edytuj' && isset($_GET['login']))
  7. {
  8. $log=$_SESSION['login'];
  9. $login=$_GET['login'];
  10. if($log == $login)
  11. {
  12. //tutaj formularz
  13. }
  14. else
  15. {
  16. echo 'Brak dostepu';
  17. }
  18. }
  19. ?>


z php zaczalem niedawno zabawe wiec moze zle rozumuje dlatego rposze was o pomoc smile.gif
potreb
Wysyłaj dane przez POST z formularza, stosuj if isset.
Przekierowanie robisz przez js a można przez php:
  1. <?php
  2. header("Refresh: 3; url=index.php");
  3. ?>


W sesji zapisuje jedynie np zakodowane hasło po co login. Porównujesz hasło z sesji z bazy. Stosuj addslashes przy logoowaniu.
pavlaq
w sesji przechowywalem sobie login po to aby go sobie porownywac w formularzach itp myslalem ze to bedzie jakies swego rodzaju zabezpieczenie....
wlamywacz
Pytanie: Jakim cudem dane z GET przeszły do SESSION ?
pavlaq
wlasnie caly czas o to mi sie rozchodzi biggrin.gif nie mam pojecia jak to sie stalo gdzie zrobilem blad i czy wogole go zrobilem no i wlasnie jakim cudem ta sesja sie zwalila
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.