Każdy kto kiedykolwiek zakładał konto użytkownika na swoim blogu opartym o WordPress wie, że hasło do konta wysyłane jest mailem jako jawny tekst. A mail wysyłany jest jako tzw. plain text, a nie HTML. Przypadek? Nie sądzę.

Przekonałem się o tym ostatnio, kiedy zaliczyłem (nie) małą wtopę.

Zadaniem było zaimportowanie do wtyczki s2member (zarządzanie kontami i subskrypcjami) około 300 kont użytkowników dostarczonych w formacie CSV. Oczywiście nie było podanych haseł i należało je wygenerować.

Wiadomo, safety first, więc wygenerowałem dla każdego hasła o zmiennej długości (8-10 znaków) składające się z liter, cyfr i znaków specjalnych. Z jednej strony dobrze bo bezpiecznie, a z drugiej to był błąd.

Na stronie była dodana obsługa niestandardowych szablonów maili, również tych z WordPressa. Kolorki, tabelki itd. więc mail był wysyłany jako HTML.

Bardziej doświadczeni pewnie powiązali już te maile w HTML z hasłami ze znakami specjalnymi. Możecie mnie linczować – nie zmieniłem znaków haseł na encje.

Dla tych mniej doświadczonych: < był traktowany jako znak otwierający znacznik HTML. W praktyce wszystko po i włącznie z < do końca linii było obcinane.

Ilość wygenerowanych haseł z tym znakiem to było około 15%, więc nie tak źle. Ale i tak to moja wina za którą biorę odpowiedzialność.

Możliwe rozwiązania sytuacji

Nie tykaj

Jeśli coś jest zaszyte w corze WordPress’a to nie szukaj na siłę rozwiązania i zmiany na swoje. Co prawda tego maila można było zmienić co wiązało się z przekopiowaniem 2 czy 3 funkcji z core, ale to jednak nie była kwestia jednego filtra. Trzeba było się namęczyć.

Enkoduj

Wystarczyło zmienić znaki w ciągu hasła na encje. Hasło wyświetliłoby się normalnie i byłoby kopiowalne.

Zmiana core

Moje ciche marzenie. Dodatkowy ekran wp-login.php na którym podajesz hasło dla swojego nowo utworzonego konta. Nie trzeba nic wysyłać, a hasło zna tylko jedna osoba.

Podsumowanie

Wpadce można było łatwiej zapobiec, ale niech to będzie przestrogą dla tych, którzy są nieostrożni tak jak ja.

Opublikowany przez Kuba Mikita

Miłośnik minimalizmu i prostoty, bo nie potrafi stworzyć niczego ładnego. Ma kołdrę, na której wypisane są funkcje WordPressa.

2 odpowiedzi na “Wysyłanie haseł mailem – case study”

Możliwość komentowania została wyłączona.