WordPress

Wiele stron chronionych różnymi hasłami. Czy można śledzić wiele haseł jednocześnie?

  • 16 kwietnia, 2018
  • 3 min read
Wiele stron chronionych różnymi hasłami.  Czy można śledzić wiele haseł jednocześnie?


Dostosowywanie WordPressa do przechowywania wielu haseł do różnych postów chronionych hasłem w plikach cookie przeglądarki jest nieco skomplikowane i wymagałoby niestandardowego kodowania. WordPress domyślnie nie obsługuje tej funkcji ze względów bezpieczeństwa. Można to jednak osiągnąć, opracowując niestandardową wtyczkę lub dodając niestandardowy kod do plikufunctions.php motywu.

Oto ogólne podejście do wdrożenia tego:

1. Niestandardowe zarządzanie plikami cookie
Ustaw niestandardowy plik cookie: gdy użytkownik wprowadzi hasło do strony chronionej hasłem, ustaw niestandardowy plik cookie, który przechowuje to hasło. Zarządzaj wieloma hasłami: przechowuj hasła w tablicy lub w formacie serializowanym w pliku cookie. Każde hasło można powiązać z jego identyfikatorem postu w celach informacyjnych.

2. Niestandardowa weryfikacja hasła
Zmodyfikuj weryfikację hasła: Przechwyć domyślny proces weryfikacji hasła WordPress. Zanim sprawdzi domyślny plik cookie hasła WordPress, Twój kod powinien sprawdzić, czy w niestandardowym pliku cookie istnieje prawidłowe hasło dla bieżącego postu. Automatyczne uzupełnianie hasła: Jeśli w Twoim niestandardowym pliku cookie zostanie znalezione prawidłowe hasło, wpisz je automatycznie i przyznaj dostęp.

3. Względy bezpieczeństwa
Szyfrowanie: rozważ zaszyfrowanie haseł przechowywanych w pliku cookie. Wygaśnięcie pliku cookie: Ustaw datę wygaśnięcia pliku cookie. Może to być ustalony czas, np. 30 dni, lub zależny od ostatniego dostępu. Usuwanie starych haseł: Zastosuj logikę, aby usunąć stare lub nieużywane hasła z pliku cookie.

Warto przeczytać!  Niestandardowy szablon typu postu nie ładuje się z wtyczki

Przykładowy fragment kodu

Oto podstawowa struktura konfiguracji pliku cookie. To jest uproszczony przykład w celach ilustracyjnych:

function wpb_custom_password_cookie() {
    if (isset($_POST['post_password'])) {
        // Assuming each post has a unique ID
        $post_id = get_the_ID(); 
        $cookie_name="wpb_custom_passwords";

        // Get existing passwords from the cookie
        $passwords = (isset($_COOKIE[$cookie_name])) ? unserialize($_COOKIE[$cookie_name]) : array();

        // Set the password for this post in the array
        $passwords[$post_id] = esc_attr($_POST['post_password']);

        // Save the updated array back to the cookie
        setcookie($cookie_name, serialize($passwords), time() + 86400 * 30, COOKIEPATH, COOKIE_DOMAIN, is_ssl());
    }
}
add_action('init', 'wpb_custom_password_cookie');

Dostosowywanie procesu weryfikacji

Aby dostosować proces weryfikacji hasła, musisz podłączyć się do mechanizmu ochrony hasłem WordPress. Może to być dość skomplikowane, ponieważ będziesz musiał przechwycić domyślne zachowanie i zaimplementować własną logikę sprawdzania haseł.

Ostrzeżenia i zalecenia

Bezpieczeństwo: Przechowywanie haseł w plikach cookie, nawet w formie zaszyfrowanej, stwarza ryzyko dla bezpieczeństwa. Zawsze rozważ konsekwencje i upewnij się, że Twoja metoda jest bezpieczna.

Doświadczenie użytkownika: Weź pod uwagę wygodę użytkownika i potencjalne zamieszanie, jeśli użytkownicy uzyskują dostęp do witryny z różnych urządzeń lub przeglądarek. Testowanie: dokładnie przetestuj tę funkcjonalność, szczególnie aby upewnić się, że bezpieczeństwo nie jest zagrożone.

Warto przeczytać!  dlaczego niektóre permalinki dodają postacie/niszczą linki

Ponieważ jest to rozwiązanie niestandardowe, może wymagać konserwacji i aktualizacji za pomocą podstawowych aktualizacji WordPress, aby zapewnić kompatybilność i bezpieczeństwo. Jako programista WordPress i PHP możesz znaleźć to w swoich umiejętnościach, ale rozważ konsultację z ekspertem ds. bezpieczeństwa, aby upewnić się, że wdrożenie jest tak bezpieczne, jak to możliwe.


Źródło