http digest autentifikace + hesla v DB - VYRESENO
Pavel Kankovsky
peak na argo.troja.mff.cuni.cz
Pondělí Březen 5 13:39:03 CET 2012
On Mon, 5 Mar 2012, Tomas Macek wrote:
> Chová se to ale podivně: pokud mám nastaveno AuthDBDUserPWQuery a nemám
> AuthDBDUserRealmQuery, modul si stěžuje:
> "[client 127.0.0.1] No AuthDBDUserRealmQuery has been specified". V
> dokumentaci se ale podle mého nic o závislosti jednoho na druhém nepíše.
AuthDBDUserRealmQuery potřebuje digest authentication a to z toho prostého
důvodu, že dotazovaný hash hesla závisí na realmu.
> Vyřešil jsem to AuthDBDUserRealmQuery s pouze jedním použitým parametrem,
To, že jste si vystačil jen s jedním parametrem, vyplývá z toho, že jste
realm do dotazu nadrátoval natrvdo ('Intra'):
> AuthDBDUserRealmQuery "SELECT md5(username || ':Intra:' || password_plain) FROM usr.admin WHERE username = %s"
čistější by bylo (když už chcete mít v db hesla v otevřeném tvaru)
něco jako
AuthDBDUserRealmQuery "SELECT md5(username || ':' || %s || ':' || password_plain) FROM usr.admin WHERE username = %s"
ale tam by se popletly %s, které je nutno použít v očekávaném pořadí (APR
pochříchu neumí nic jako %$2s"). To by se dalo asi vyřešit nějakým
krkolomnějším vnořeným dotazem, ale je otázka, zda to má smysl se s tím
trápit, protože při menším než očekávaném počtu %s bude parametry navíc
nejspíš prostě ignorovat (problém by spíš vzniknul při zadání většího
počtu %s, to mám obavu, že by mohl jít v plamenech k zemi).
--
Pavel Kankovsky aka Peak / Jeremiah 9:21 \
"For death is come up into our MS Windows(tm)..." \ 21st century edition /
Další informace o konferenci Linux