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