Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Zabezpieczenie sesji, ze szczyptą algorytmu szyfrującego
Forum PHP.pl > Forum > PHP
.radex
Hmmm..... Wymyśliłem sobie [genialny biggrin.gif] sposób na zabezpieczenie sesji, w razie wyciągnięcia SID... User w czasie rejestracji wybiera sobie (wpisuje) klucz prywatny.... W sessji jest ip osoby, ktora zalogowała się (zaszyfrowany), i porównyje czy pasuje. no i

1. Co sądzicie o tym pomyśle, czy ma on sens, czy jest rzeczywiście skuteczny..

2. Jaki proponujecie algorytm szyfrowania (lub skrótu), tak żeby szyfrowało wg. klucza, i żeby był szybki (duży ruch a wiele sprawdzeń to trochę roboty:P)

Z góry dzięki za podpowiedzi
carbolymer
Myślę że ciekawy pomysł, a co do klucza... jakie warunki on musi spełniać? Nie lepiej generować ten klucz? Ten klucz potem będzie potrzebny przy logowaniu czy będzie zapisany na stałe?

Co do szyfrowania spróbuj różnicy symetrycznej XOR.
sobstel
IP nie jest dobrym sposoblem identyfikacji użytkownika. IP jest zmienne... AOL, neostrada, modemy... moze nawet byc inne w dwoch zadaniach jeden po drugim (wina serwerow proxy, ktore moga zwracac rozne rzeczy).

Poza tym nie rozumiem po co cale szyfrowanie? Przeciez jak przejmie SID to i tak nie ma bezposrednio dostepu do danych sesyjnych (chyba ze sa one wyswietlane).
.radex
No i dlatego mówie, że IP jest wczytywane przy logowaniu:P A hasło w sesji i tak jest sszyfrowane.

Klucz będzie na stałe, ale można go z panelu usera zmienić, a z generowaniem, to szczerze mówiąc nie wpadłem na to:P


Cytat
Przeciez jak przejmie SID to i tak nie ma bezposrednio dostepu do danych sesyjnych


? Słyszałem, że sesje robią się niebezpieczne po otrzymaniu SID... Ja ich nigdzie nie wyświem.

Co do XOR:

<?php

$d = $_GET['a'] XOR $_GET['b'];

echo $d;
?>

nic nie zmiania. Wyświetla tylko $a (get)
sobstel
Cytat(radex_p @ 8.05.2007, 13:18:44 ) *
No i dlatego mówie, że IP jest wczytywane przy logowaniu:P A hasło w sesji i tak jest sszyfrowane.


Cytat
moze nawet byc inne w dwoch zadaniach jeden po drugim (wina serwerow proxy, ktore moga zwracac rozne rzeczy).


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

Cytat
Cytat
Przeciez jak przejmie SID to i tak nie ma bezposrednio dostepu do danych sesyjnych


? Słyszałem, że sesje robią się niebezpieczne po otrzymaniu SID... Ja ich nigdzie nie wyświem.


w sumie jest taka mozliwosc jesli ktos ma konto na tym samym serwerze wspoldzielonym a sesje sa przchowywane w domyslnym katalogu /tmp, do ktorego kazdy user ma dostep.
.radex
Haha, u mnie nie ma tak łatwo. Sesje są w katalogu serwera i tylko user o najwyższym stopniu (inni automatycznie mają default dir jako htdocs/) ma tam dostęp. Ale czy to jest jedyna możliwość, czy atakujący ma inną możliwość dostania się do sesji ( wg. manuala PHP się troszkę przestraszyłem i dlatego wymyśliłem to zabezpieczenie).

I dzięki za zwrócenie uwagi co do IP. Zastanowię się jeszcze nad tym.

EDIT:

aha, Sopel przypomnisz mi jak się ustawiało długość żywotności sesji?

(Wiem że można użyć MySQL i zapamiętania czasu logowania, ale chyba była jakaś do tego funkcja)
Kicok
session_set_cookie_params" title="Zobacz w manualu PHP" target="_manual

Składnia podobna do setcookie. Co to różnic to najważniejsza:
http://pl2.php.net/manual/pl/function.sess...arams.php#19409


PS. Jeśli ustawisz czas wygaśnięcia ciasteczka sesji na 0, to będzie ono zachowywało się "standardowo", czyli zniknie dopiero po zamknięciu przeglądarki.
.radex
ok, skoro mówicie że takie zabezpieczenie nie ma sensu to daje sobie spokój tongue.gif

PS. Dzięki za odpowiedź Kicok:P
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.