Ecco il layout:PHP e soluzione di autenticazione .htaccess
web root
- admin (dir)
- index.php
- js
- img
- other files/dirs
- dir
- files
Fino ad ora, ho protetto il dir di amministrazione con .htaccess passwd perché voglio il controllo di accesso completo per tutti i file in quella dir (tra cui js script, jpg , pdf ecc.). D'altra parte, il mio CMS personalizzato fornisce l'autenticazione utilizzando sesssion/cookie PHP per altri URL. Quello che voglio ottenere è usare la stessa autenticazione PHP per la directory protetta .htaccess, evitando il prompt popup per utente/password per gli utenti già autenticati da PHP. In sintesi:
- voglio dir amministratore per utilizzare le regole .htaccess per l'autenticazione
- Se un utente è già autenticato utilizzando PHP (login in un form HTML, su un file non protetto), bypassare il secondo processo di autenticazione .htaccess quando si accede al contenuto di amministrazione dir
- Se un non PHP utente autenticato prova ad accedere a contenuti nella directory di amministrazione, il popup di autenticazione HTTP deve essere attivato
maggior parte delle cose che ho leggi suggerire di spostare la directory di amministrazione all'esterno della web root e accedere a t file da uno script PHP con readfile, che non voglio fare. C'è contenuto dinamico su quella directory, oltre che statico. So che apache attiverà il popup auth prima di caricare qualsiasi risorsa, quindi la domanda è come rendere apache consapevole che l'utente è già autenticato. Qualche altro suggerimento/soluzione alternativa?
Effettua l'autenticazione HTTP con php> http://php.net/manual/en/features.http-auth.php> http://koivi.com/archives/php-http-auth/ –
Dai un'occhiata qui, è possibile risolverlo solo con PHP: http://php.net/manual/en/features.http-auth.php e senza un file .htaccess. Per la Cookie Stuff date un'occhiata qui: http://www.askapache.com/htaccess/htaccess-fresh.html#Get_Cookie_Value. Dopo che l'utente ha effettuato l'accesso, viene impostato un cookie. È necessario che il file htaccess controlli questo cookie. Questo non funziona molto bene con le sessioni di php, dal momento che il cookie di sessione contiene solo un hash di sessione. –