Closed pavel-janicek closed 3 years ago
Po technickém posouzení jsme došli k závěru, že toto není v současné době možné realizovat tak, aby byl mechanismus předávání hesla zabezpečen proti kompromitaci. Důvodem je napojení na systém WordPressu (dále jen WP), který poskytuje určité rozhraní a zároveň flow, které je použito pro zpracování formuláře objednávky.
Správu uživatelského účtu má v dikci výhradně WP a s tím souvisí nutnost správně nastavit odesílání e-mailů z této instance WP, která je zodpovědností každého provozovatele a je zcela mimo účast SimpleShopu (dále jen SS). SS pouze dané instanci WP dá informaci o aktivace členské sekce pro daného uživatele, ale už nemá žádné informace, zda na instanci WP je uživatel založen, nebo se musí vytvořit nový. Proto není ani v jeho možnostech posílat nové heslo – protože pokud již uživatel existuje, nastala by nomá komplikace (heslo ponechat a nebo změnit?).
Z popisu issue to sice vypadá jako jednoduchý úkol, ale fakticky lze požadavku vyhovět pouze komplexním duplikováním logiky správy uživatelů ve WP na straně SS a nebo nezabezpečeným přenášením hesla na servery SS, což nechceme.
Budeme ale v následující verzi měnit způsob práce s e-mailem, který se posílá, aby byl trochu srozumitelnější.
Lituji, že přináším negativní zprávy a děkuju za pochopení.
Scénář
Uživatel chce přístup do členské sekce Simpleshop. Uživatel chce přístup do členské sekce hned teď Uživatel si přes formulář Simpleshopu koupí přístup do členské sekce a čeká na e-mail s přístupovými údaji, který nepřichází
Problém
Plugin se spoléhá na funkci wp_insert_user která posléze odesílá e-mail uživateli ohledně jeho přístupových údajú přímo z cílového webu, na kterém je plugin nasazen.
Mailing ale na cílovém webu může být nastaven špatně (hodně e-mailů padá do spamu) a nebo vůbec (e-maily vůbec neodchází). Povede to k frustraci uživatele, který si bude stěžovat majiteli webu, který si bude stěžovat podpoře Simpleshopu.
Podpora Simpleshopu se pak bude muset potýkat s majitelem webu, který nemusí být dostatečně technicky zdatný na to, aby nastavil odesílání e-mailů ze svého webu správně.
Řešení
Přinutit uživatele, aby vždy zadával heslo na formuláři simpleshopu. v pluginu pak změníme řádku s generováním hesla na něco takovéhoto:
$_password = $request->get_param( 'password' )
Dále pak pozměníme řádky na získání uživatele na něco takovéhoto:
Proč proboha neustále měníme heslo?
Závěr
Ano, je to trochu šílené řešení, které vyžaduje změnu na Simpleshop prodejním formuláři. Zároveň ale řeši situaci, i daný problém: