Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [php]Sniffing a cookie
Forum PHP.pl > Forum > PHP
marcio
Witam przypadkowo dzis przeczytalem jakis post na jakims forum ze najlepiej hashowac zawartosc cookie'sow i powiem ze nie pomyslalem o tym a koles mial racje bo np Cain'em bylem w stanie odczytac zawartosc cookie zmienic je i zalogowac sie na konto admina wiec pomyslalem to zmienic i pojawil sie duzy problem, miedzy innymi mam funkcje ktora ogranicza dostep do podstron:
  1. <?php
  2. function members_access($c_login, $c_lvl, $c_code, $site) {
  3.  
  4.  $sql_members = mysql_query('select login,lvl,code from user_n where login = "'.mysql_real_escape_string($c_login).'" limit 1');
  5.  $sql_lvl = mysql_query('select level from settings where dzial = "'.mysql_real_escape_string($site).'" limit 1');
  6.  $members = mysql_fetch_assoc($sql_members);
  7.  $level_site = mysql_fetch_assoc($sql_lvl);
  8.  
  9.   if(!isset($c_login) && !isset($c_lvl) && !isset($c_code) && $level_site['level'] > 0 && $level_site['level'] <= 4) return false;
  10.   else if((!isset($c_login) && !isset($c_lvl) && !isset($c_code)) || (isset($c_login) && isset($c_lvl) && isset($c_code) && $c_lvl >= 1 && $c_lvl <= 4) && $level_site['level'] == 0) return true;
  11.   else if(isset($c_login) && isset($c_lvl) && isset($c_code) && $c_login == $members['login'] && $c_lvl == $members['lvl'] && $c_code == $members['code'] && ($c_lvl == 1 || $c_lvl == 2 || $c_lvl == 3 || $c_lvl == 4) && $level_site['level'] == 1) return true;
  12.   else if(isset($c_login) && isset($c_lvl) && isset($c_code) && $c_login == $members['login'] && $c_lvl == $members['lvl'] && $c_code == $members['code'] && ($c_lvl == 2 || $c_lvl == 3 || $c_lvl == 4) && $level_site['level'] == 2) return true;
  13.   else if(isset($c_login) && isset($c_lvl) && isset($c_code) && $c_login == $members['login'] && $c_lvl == $members['lvl'] && $c_code == $members['code'] && ($c_lvl == 3 || $c_lvl == 4) && $level_site['level'] == 3) return true;
  14.   else if(isset($c_login) && isset($c_lvl) && isset($c_code) && $c_login == $members['login'] && $c_lvl == $members['lvl'] && $c_code == $members['code'] && $c_lvl == 4 && $level_site['level'] == 4) return true;
  15.   else return false;
  16. }
  17. ?>

I wywoluje na na kazdej stronie:
  1. <?php
  2. include('./system/system.php');
  3. include('./system/layout.php');
  4. include('./theme/new/window/render.php');
  5.  
  6. connection();
  7.  
  8. $site_self = explode('/', $_SERVER['PHP_SELF']);
  9. $site_self = $site_self[count($site_self)-1];
  10.  
  11. if(members_access(odszyfruj($_COOKIE['username']), odszyfruj($_COOKIE['userlvl']), odszyfruj($_COOKIE['usercode']), $site_self)) {
  12.  
  13. $temp_dir = return_template_dir();
  14. $template = './theme/new/styl/'.$temp_dir.'/tpl1.tpl';
  15.  
  16. $result = draw_site($template, $site_self);
  17.  
  18. echo($result);
  19.  
  20. }
  21. else redirect('index.php');
  22.  
  23. disconnect();
  24. ?>

Problem polega na tym ze jak nie jest sie zalogowanym to caly czas mnie przekierowywyuje na index.php i wtedy dostaje blad od FF:
Cytat
Firefox wykrył, że serwer przekierowuje żądanie tego zasobu w sposób uniemożliwiający jego ukończenie.

I blad dobrze mowi bo mam taka funkcje na kazdej stronie.

Poprostu przepisalem pare rzeczy a cms'em nie zajmowalem sie z 1 miesiac moze cos przegapilem ale jestem juz zmeczony moze ktos widzi gdzie robie blad?
erix
Kod
else redirect('index.php');

Cytat
I blad dobrze mowi bo mam taka funkcje na kazdej stronie.

Jak jesteś na index.php, to cały czas kieruje na główną. winksmiley.jpg Dodaj warunek sprawdzający, czy to index i powinno być po bólu.
marcio
NOm to problem nie polega na tym bo jak sie ktos zaloguje i ma cookie to wszystko dziala ok a jak nie jest sie zalogowanym to tak robi.

Zaczelo sie tak robic po szyfrowaniu cookie'ow na kompie user'a wczesniej dzialalo tongue.gif
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.