[Apache] Wylogowywanie przy autoryzacji wykorzystującej mechanizmy .htaccess i .htpasswd.

Witam Was ponownie po dłuższej przerwie i zapraszam do lektury kolejnego wpisu. Jak zapewne wiecie, zabezpieczyć dostęp do danych na serwerze można na bardzo wiele sposobów. Wszelkiego rodzaju skrypty logowania bazujące na różnych mechanizmach autoryzacji skutecznie “utrudniają” nam dostęp do żądanych informacji i zmuszają do posłusznego wklepywania loginów i haseł w odpowiednie pola formularzy. W swojej wielkoduszności programiści oprócz logowania zwykle implementują też komplementarną akcję wylogowywania się z konta użytkownika - zaznaczam - zwykle, ponieważ nie zawsze takie “coś” istnieje. W dzisiejszym wpisie chciałbym pokazać przykład takiego “negatywnego przypadku” oraz doradzić, jak wybrnąć z zaistniałej sytuacji.

Problem.

O czym mowa? Oczywiście o tytułowym logowaniu przy użyciu autoryzacji HTTP. Zapewne nie raz widzieliście takie, lub podobne okienko w przeglądarce:

formularz logowania do serwera

[PHP, (My)SQL] Systemy uprawnień na stronach internetowych, część 0x03: Macierz uprawnień.

W ostatnich wpisach z tej serii skupialiśmy się na zarządzaniu uprawnieniami pewnych grup użytkowników naszej aplikacji. Obszary dostępu to nic innego jak podział na dwie sztywne grupy posiadające [lub nie] dostępu do pewnych zabezpieczonych elementów systemu, zaś poziomy to tylko wykorzystanie abstrakcji do złożenia w jednym miejscu wielu obszarów. Opisując te sposoby “celowo zapominałem” o tym, że nie zawsze da się podzielić użytkowników na odpowiednie grupy, ponadto nie zawsze nadane uprawnienia muszą być sztywne - czasem chcemy np. dać dodatkowo jednemu zaufanemu użytkownikowi dostęp do statystyk witryny, albo przeglądania artykułów - wtedy musielibyśmy stworzyć albo oddzielny obszar albo nowy poziom, który notabene zburzyłby dotychczas istniejącą strukturę. Co zrobić z takim problemem?

Wstęp.

Oczywiście potrzebujemy jeszcze innego, nowego systemu zarządzania uprawnieniami, który pozwoliłby na zachowanie istniejących zysków i przy okazji wyeliminowałby słabości tych, które testowaliśmy do tej pory. W szczególności powinien umożliwiać:
  • nadawanie indywidualnych uprawnień
  • nadawanie grupowych uprawnień
  • reagować na fakt posiadania uprawnienia przez użytkownika lub przypisanej mu grupy
Drodzy Czytelnicy, oto przed Wami najnowszy cud techniki - macierze uprawnień! Ale nie wyprzedzajmy zbytnio materiału - wszystko ma swoją kolej. ;]