• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Cenzura e-maila

VPS Starter Arubacloud
0 głosów
375 wizyt
pytanie zadane 5 kwietnia 2018 w PHP przez OdsetekGlupoty Pasjonat (15,360 p.)
edycja 5 kwietnia 2018 przez OdsetekGlupoty

Witam,

Mam może z pozoru niewielki problem, ale nie daje mi to spokoju. Jeśli użytkownik wejdzie w jego panel zarządzania kontem może tam zmienić e-mail i hasło. U góry są dane użytkownika - jego nick, data rejestracji oraz cenzurowany z pomocą gwiazdek * email. Wygląda (a właściwie powinno wyglądać) to tak, że pokazuje 3 pierwsze znaki, a reszta zostaje zamieniona na gwiazdki. Potem wyświetla znak @ i nazwę maila też powinien cenzurować. Na koniec tylko ma zostawić końcówkę, czyli .pl .com itd...

Czyli jeśli ktoś ma e-mail bartus120abc@gmail.com to cenzura powinna wyświetlić:

bar*********@*****.com

Robię to dlatego, że w wypadku włamania się na konto danego użytkownika, włamywacz nie dostanie danych na tacy, a sam użytkownik będzie mógł łatwo, pomimo cenzury, przypomnieć sobie swój e-mail.

Jednak mam problem z cenzurą na nazwę maila (to co jest po @). Próbowałem znaleźć jakiś złoty środek, czyli odejmować licznik w pętli for, dzielić, dodawać tak jak robiłem to w pierwszym forze ale to niestety nie działa! Raz wyświetla za dużo gwizadek, a raz za mało. Proszę o pomoc.

Kod:

$emailAtPosition = strpos($email, '@');
$emailDotPosition = strpos($email, '.');
$hidenemail = substr($email, 0, 3);
	
for ($i = 0; $i <= $emailAtPosition-4; $i++)
{
	$hidenemail = $hidenemail.'*';
}
	
$hidenemail = $hidenemail.'@';

for ($i = 0; $i <= $emailDotPosition; $i++)
{
	$hidenemail = $hidenemail.'*';
}
	
$emailname = substr($email, $emailDotPosition);
$hidenemail = $hidenemail.$emailname;

Pokazuję cały kod maskowania. Może winny nie jest sam for.

Z góry dziękuję za wszystkie odpowiedzi!

komentarz 5 kwietnia 2018 przez Tomek Sochacki Ekspert (227,510 p.)
ale chwila, po co ukrywać e-maila??? adres e-mail jest przecież jawny, nie znam nikogo, kto zakładałby oddzielne adresy tylko do pojedynczych rejestracji i nikomu ich nie dawał, zresztą fakt poznania e-maila nic Ci nie da, musisz znać przecież hasło, a tego nigdzie nie wyświetlasz i nawet w bazie masz zaszyfrowane.
komentarz 5 kwietnia 2018 przez OdsetekGlupoty Pasjonat (15,360 p.)
Aby zalogować się do mojego serwisu trzeba podać nazwę użytkownika oraz hasło. E-mail służy tylko do kontaktu administracja-użytkownik. A jeśli ktoś poda dobry login i hasło i będzie miał podany e-mail w panelu zarządzania kontem będzie mógł już zmienić i e-mail i hasło i praktycznie przywłaszczyć sobie czyjeś konto.

A jeżeli jakiś nierozgarnięty użytkownik zapomni swojego maila będzie mógł go łatwo sprawdzić w panelu pomimo cenzury (3 pierwsze znaki powinny wystarczyć).
komentarz 5 kwietnia 2018 przez niezalogowany

A jeśli ktoś poda dobry login i hasło i będzie miał podany e-mail w panelu zarządzania kontem będzie mógł już zmienić i e-mail i hasło i praktycznie przywłaszczyć sobie czyjeś konto.

To wysyłaj na stary adres mailowy potwierdzenie zmiany. 

1 odpowiedź

0 głosów
odpowiedź 5 kwietnia 2018 przez Tnifey Pasjonat (24,190 p.)
wybrane 5 kwietnia 2018 przez OdsetekGlupoty
 
Najlepsza

próbowałeś może str_repeat zamiast tych śmisznych forów?

http://php.net/manual/en/function.str-repeat.php

komentarz 5 kwietnia 2018 przez OdsetekGlupoty Pasjonat (15,360 p.)
Jak mam tego użyć żeby cenzura działała? Utworzyć 2 zmienne, w których będzie siedziała odpowiednia ilość gwiazdek, a potem to odpowiednio podoczepiać do $hidenemail?

Trochę trzeba by było się pomęczyć...
komentarz 5 kwietnia 2018 przez Tnifey Pasjonat (24,190 p.)
no chyba dokładnie tak jak powiedziałeś, tak by wypadało zrobić, nawet jednego fora nie trzeba użyć :P wszystko ładnie prosto :P

nudziło mi się więc coś takiego jako kod poglądowy mogę ci przedstawić :P

https://repl.it/@HubertLesiak/emailCensor
komentarz 5 kwietnia 2018 przez OdsetekGlupoty Pasjonat (15,360 p.)

Dzięki za pomoc! A tak poza tym to nie byłoby prościej zrobić to jakoś tak?

$emailAtPosition = strpos($email, '@');
$emailDotPosition = strpos($email, '.');
$hidenemail = substr($email, 0, 3);
	
$emailCensure1 = str_repeat('*', $emailAtPosition-3);
$emailCensure2 = str_repeat('*', $emailDotPosition-$emailAtPosition-1);
	
$emailname = substr($email, $emailDotPosition);
	
$hidenemail = $hidenemail.$emailCensure1.'@'.$emailCensure2.$emailname;

 

Podobne pytania

0 głosów
1 odpowiedź 382 wizyt
pytanie zadane 10 września 2018 w C i C++ przez Archeon Początkujący (480 p.)
0 głosów
1 odpowiedź 322 wizyt
pytanie zadane 9 września 2018 w C i C++ przez Archeon Początkujący (480 p.)
+2 głosów
2 odpowiedzi 346 wizyt
pytanie zadane 7 maja 2018 w Offtop przez NIMuser Stary wyjadacz (11,030 p.)

92,455 zapytań

141,263 odpowiedzi

319,099 komentarzy

61,854 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Akademia Sekuraka 2024 zapewnia dostęp do minimum 15 szkoleń online z bezpieczeństwa IT oraz dostęp także do materiałów z edycji Sekurak Academy z roku 2023!

Przy zakupie możecie skorzystać z kodu: pasja-akademia - użyjcie go w koszyku, a uzyskacie rabat -30% na bilety w wersji "Standard"! Więcej informacji na temat akademii 2024 znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...