Domanda

La mia app PHP utilizza 404 Documenti per generare file HTML in modo che più query nello stesso file HTML facciano funzionare la generazione una sola volta.

Vorrei intercettare le richieste ai file HTML in modo che l'utente debba disporre di una sessione PHP stabilita per estrarre i file.

Nel migliore dei casi, l'ID SESSIONE verrebbe utilizzato nell'URL e forzarlo potrebbe essere usato come ulteriore autenticazione. Ad esempio, l'accesso ti emetterebbe un SessionID e renderebbe accessibili solo determinati file HTML.

Sono consapevole che modificando i miei cookie potrei falsificare una richiesta, ma va bene.

Come potrei fare per fare questo?

È stato utile?

Soluzione

Qualcosa del genere potrebbe funzionare (non l'ho provato):

RewriteCond %{HTTP_COOKIE} PHPSESSID=([a-zA-Z0-9]+)
RewriteCond %{REQUEST_FILENAME} %{REQUEST_FILENAME}-%1.html
RewriteRule ^ %{REQUEST_FILENAME}-%1.html

Si presume che si aggiunga " - $ session_id.html " ai nomi dei file ( $ session_id è l'ID della sessione di PHP).

Dovrebbe essere sicuro, e il vantaggio è che i file sono serviti direttamente dal web server senza invocare affatto PHP.

Altri suggerimenti

SetEnvIf HTTP_COOKIE "PHPSESSID" let_me_in
<Directory /www/static/htmls>
  Order Deny,Allow
  Deny from all
  Allow from env=let_me_in
</Directory>  

Naturalmente l'utente può creare manualmente tali cookie nel proprio browser (ci sono estensioni che lo fanno per Firefox e puoi sempre modificare l'archivio cookie del tuo browser).

È possibile utilizzare modulo Apache mod_rewrite per reindirizzare le richieste di .html URL di uno script PHP:

RewriteEngine on
RewriteRule \.html$ script.php [L]

Il percorso e la query URI richiesti sono quindi disponibili nella variabile $ _SERVER ['REQUEST_URI'] .

Metti i tuoi file memorizzati nella cache dalla tua radice web, ma comunque in un posto dove PHP può accedervi.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top