Skocz do zawartości

Zarchiwizowany

Ten temat jest archiwizowany i nie można dodawać nowych odpowiedzi.

dj.drezyna

[php] Bezpieczne zalogowanie, a SESSION

Polecane posty

Pomyślałem sobie, żeby sprawdzać przy każdym wykonaniu skryptu, jakie użytkownik ma uprawnienia. (zmieniają się powiedzmy, szybko i często)

No i jak zrobić, żeby użytkownik tylko raz podał hasło i swój login, a potem system sam sprawdzał na podstawie użytkownika i hasła jakie ma uprawnienia. Ale chodzi mi tutaj w jaki sposób (czyli jakie i jak przetworzone) przechować dane w sesji. Bo jedną rzecz słyszałem, żeby hasło w sesji kodować np. crypt() ale pojawia się tu problem, że jeżeli ktoś odkryje wartość zmiennej sesyjnej przez włam, to taka wartość będzie mogła być wykorzystana za każdym razem i za każdym razem będzie mógł zmienną sesyjną ustawić na tą wartość i być jak gdyby zalogowany z pełnią praw.

 

Jak zatem rozwiązać to by sprawdzanie uprawnień było w każdym wykonaniu skryptu jednocześnie bez konieczności podawania hasła, a jedynie korzystania z zapisanego w sesji?

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

Cześć :)

 

Nie rozumie w jakim celu chcesz trzymać w sesji hasło, przecież uprawnienia sprawdzasz po loginie lub id użytkownika?

 

Jeżeli masz zalogowanego użytkownika to sprawdzasz uprawnienia przed każdą operacją, która tego wymaga.

 

Ustawianie zmiennych sesji nic nie da, jeżeli odbierzesz użytkownikowi prawa.

 

Pozdrawiam!

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

Hej,

 

Tak jak mówi xevil w sesji trzymaj tylko ID użytkownika, a np w bazie danych informacje o jego uprawnieniach. Wyciągasz tylko te uprawnienia które ci są potrzebne przy danym wywołaniu i wszystko bez kombinowania itp.

 

W sesji nie wolno trzymać haseł ani nic czego wycieknięcie może spowodować utratę kotroli użytkownika nad kontem.

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

Dzięki!

Nie pomyślałem, że hasło jest tylko dlatego, żeby użytkownik udowodnił, że ma prawo być zalogowanym. A więc jest to bardzo proste id i załatwione.

 

Ale

 

Jak jakaś zmienna sesyjna będzie miała wartość id to ktoś może sobie taką zmienną ustawić jak się włamie i mimo tego, że uprawnienia są pobierane za każdym wywołaniem skryptu to przecież będzie spełniał warunki zalogowanego. Tak?

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

Możesz dodawać różne wariacje zabezpieczeń np sprawdzać ciasteczko z jakąś zmienną sesyjną / sprawdzać adres ip / przeglądarkę itd.

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

Poczytaj na temat funkcji session_regenerate_id(). Dodatkowo możesz pomyśleć o certyfikacie ssl. W sesji nie zapisujesz hasła tylko id użytkownika i za każdym razem sprawdzasz uprawnienia np. w bazie danych.

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

×