Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [MSSQL][PHP] Logowanie, a bezpieczeństwo
Forum PHP.pl > Forum > Przedszkole
boddah85
Witam

Mam zamiar napisac skrypt, który ma obsługiwac logowanie za pośrednictwem kont mssql.
Tj mam - zakładamy, że 50 - użytkowników w mssqlu i za pośrednictwem swoich loginów(i haseł) do mssqla mają się logować do serwisu i wykonywać wszelkie operacje na bazie właśnie dzięki tym danym.

Jako, że w pisanych przeze mnie skryptach, logowałem się do bazy z góry ustalonym loginem i hasłem, to za bardzo nie wiem jak się za to zabrać. Jedyny mój pomysł póki co to taki, żeby w zaszyfrowanej sesji przechowywać login i hasło i za każdym razem sprawdzać czy udało się połączyć z bazą.

Z góry dzięki za wszelka pomoc
SaMi
Cytat
Jako, że w pisanych przeze mnie skryptach, logowałem się do bazy z góry ustalonym loginem i hasłem, to za bardzo nie wiem jak się za to zabrać. Jedyny mój pomysł póki co to taki, żeby w zaszyfrowanej sesji przechowywać login i hasło i za każdym razem sprawdzać czy udało się połączyć z bazą.


Przeczytałem to kilka razy i nie bardzo rozumiem co masz na mysli.
Zawsze z góry ustalasz login i hasło które potem zapisywane są w bazie danych login to powiedzmy adres email a haslo w formie zawszyfrowanej np. sha1.
boddah85
Zdaje sobie sprawę, że mogłem to napisac trochę chaotycznie smile.gif

Rzecz w tym, że to nie będzie z góry ustalony login i hasło do bazy. Ile użytkowników na stronie, tyle kont(użytkowników) w bazie. Logowanie do bazy == logowanie do serwisu.
SaMi
Czyli chcesz tworzyć konta dynamicznie uzytkownik wchodzi na stronę i zostaje mu wygenerowane konto, użytkownik opuszcza stronę i konto jego zostaje usunięte ? tak ? jesli tak to co chcesz tym osiągnać?

i dalej nie rozumiem
Cytat
Logowanie do bazy == logowanie do serwisu
boddah85
No to od początku.

Mam już 50ciu użytkowników w MSSQLU. Teraz chce zbudować cały system logowania do serwisu wykorzystując te właśnie konta do bazy(a nie np. tabele users w bazie danych). Wszystkie operacje na bazie byłyby wykonywane właśnie dzięki tym kontom, a nie jednemu wcześniej zdefiniowanemu.
stefano_F
Musisz poprostu pobrać dane z formularza i podstawić pod zmienne, a następnie za pomocą tych zmiennych próbować podłączyć się do bazy danych. Jak logowanie będzie poprawne to ustanowisz połączenie z bazą.
boddah85
To jasne. Problem(?) polega na tym, co z tym zrobić aby użytkownik poruszał się po serwisie tj. przechodził od podstrony do podstrony. Normalnie (tj przy z góry ustalonym użytkowniku i haśle do BD)takie dane wczytywane są z np. pliku konfiguracyjnego. W omawianym przeze mnie przypadku trzeba(?) takie dane zapamiętać w inny sposób, dlatego pierwsza myśl to sesja.
stefano_F
Wybacz, ale nie wiem czy dobrze rozumiem Twój problem.
Dla mnie nie ma różnicy czy logujesz się "normalnie" - login i hasło do DB takie same, w bazie tabela users i z niej wczytujesz login i hasło usera, czy też logowanie za pomocą loginów systemowych i na tej podstawie nawiązywanie połączenia z bazą.
Po poprawnym zalogowaniu się na stronie (niezależnie od sposobu) ustawiasz zmienną sesyjną np. $zalogowany = 1 i wówczas w każdym module (podstronie) sprawdzam czy zalogowany jest równe 1, jak nie to znaczy że user nie ma dostępu do tego działu.
boddah85
smile.gif

Dzięki za próby zrozumienia problemu.

Może na przykładzie.

Strona do logowania

1. User wpisuje login i hasło
2. Następuje połączenie z bazą gdzie użytkowniem bazy jest wcześniej podany login
3. Jeśli ok - zmienną sesyjną ustawiamy na 1 i przekierowujemy na stronę dla wtajemniczonych

Strona dla wtajemniczonych

1. Sprawdzamy czy zmiena sesyjna =1
2. Łączymy się z bazą

I tutaj jest problem - na podstawie jakich danych (bo chciałbym, żeby to było na podstawie loginu i hasła wpisanego przy logowaniu)? Tzn. skąd mam pobrać nazwę użytkownika i hasło? Można zapisać to wszystko w sesji przy logowaniu (tj login i hasło), ale mam wątpliwości, czy to jest najlepsze i najbezpieczniejsze rozwiązanie.
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.