Question

Mon application PHP utilise 404 documents pour générer des fichiers HTML, de sorte que plusieurs requêtes sur le même fichier HTML entraînent l'exécution unique de la génération.

J'aimerais intercepter les requêtes sur les fichiers HTML afin que l'utilisateur ait besoin d'une session PHP établie pour pouvoir accéder aux fichiers.

Dans le meilleur des cas, l'ID de SESSION serait utilisé dans l'URL et forcé, il pourrait servir d'authentification supplémentaire. Par exemple, vous connecter vous émettrait un identifiant de session et ne rendrait accessible que certains fichiers HTML.

Je suis conscient qu'en modifiant mes cookies, je pouvais usurper une requête, mais c'est correct.

Comment pourrais-je m'y prendre?

Était-ce utile?

La solution

Quelque chose comme ça pourrait marcher (je ne l’ai pas testé):

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

Cela suppose que vous ajoutiez " - $ session_id.html & <; code> aux noms de fichiers ( $ session_id est l'identifiant de session de PHP).

Cela devrait être sûr, et l’avantage est que les fichiers sont directement servis par le serveur Web sans invoquer PHP.

Autres conseils

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

Bien sûr, l'utilisateur peut créer manuellement ce type de cookie dans son navigateur (certaines extensions le font pour Firefox et vous pouvez toujours modifier le magasin de cookies de votre navigateur).

Vous pouvez utiliser le module Apache mod_rewrite pour rediriger les demandes de .html URL vers un script PHP:

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

Le chemin et la requête d'URI demandés sont alors disponibles dans la variable $ _ SERVER ['REQUEST_URI'] .

Mettez les fichiers en cache hors de votre racine Web, mais dans un endroit où PHP peut y accéder.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top