Le 07/05/2020 à 20:53, nicod_ a écrit :
> Parfois il y a un htaccess à la racine de /IMG (le rewrite ci dessus), 
> parfois dans chaque sous répertoire (deny all), je ne détermine pas bien 
> pourquoi (le code est assez... complexe à suivre).

Le pourquoi normalement c'est :
- si protection des documents le plugin cherche en priorité à poser uniquement 
le htaccess de IMG qui doit tout rediriger vers l'action PHP (plus aucune URL 
de document servie brute)
- mais il teste si ça marche vraiment, en demandant un fichier qui doit 
renvoyer OK seulement si depuis l'action PHP
- si ça n'a PAS marché, alors il pose des htaccess de deny (c'est le core qui 
fait ça) dans tous les sous-dossiers, et il supprime celui de IMG puisque ne 
marche pas

Les raisons pour lesquelles ça ne marche pas peuvent être multiples, par ex :
- des problèmes de droits, et donc le fichier n'est pas posé du tout
- des problèmes de config Apache ou ce genre, et donc les réécritures ne 
fonctionnent pas et donc ça n'appelle pas l'action PHP

Toujours est-il que si les rewrite ne fonctionnent pas et que donc pas d'action 
PHP, alors ce sont les deny dans les sous-dossiers.

Mais si le htaccess IMG a bien fonctionné, alors les vrais URL de documents 
redirigent toujours vers l'action PHP *qu'il y ait la query string avec le hash 
ou pas*.

Le fait qu'il y ait le hash, est une facilité, où l'autorisation (matérialisée 
par le hash) est calculée en amont au moment de #URL_DOCUMENT, et du coup si 
c'est le cas, quand on cherche à accéder au document, il ne vérifie plus 
l'autorisation car déjà ok (sauf si constante).
Mais si on demande les fichiers sans le hash, ça marche aussi : ça passe bien 
par l'action de même, et ça vérifie alors l'autorisation sur le moment de 
l'accès (y compris sans la constante donc).

Les htpasswd par contre sont sans rapport avec les documents et donc les 
htaccess de IMG (lui-même ou sous-dossiers).

-- 
RastaPopoulos

_______________________________________________
liste: https://listes.rezo.net/mailman/listinfo/spip-dev
doc: https://www.spip.net/
dev: https://core.spip.net/
irc://irc.freenode.net/spip

Répondre à