Skip to content
Extraits de code Groupes Projets
Valider e7b7da41 rédigé par esj's avatar esj
Parcourir les fichiers

introduction de la meta creer_htaccess: finalisation de la protection des pièces jointes

parent 211a9a73
Aucune branche associée trouvée
Aucune étiquette associée trouvée
Aucune requête de fusion associée trouvée
...@@ -395,35 +395,59 @@ fin_cadre_trait_couleur(); ...@@ -395,35 +395,59 @@ fin_cadre_trait_couleur();
} }
###### ATTENTION EXPERIMENTAL:
# l'option htpasswd est remplacee par la securisation des IMG/*
// //
// Creer fichier .htpasswd ? // Creer fichier .htpasswd ?
// //
if ($options == "avancees" AND !@file_exists('.htaccess') AND !$REMOTE_USER ) { if ($options == "avancees" AND !@file_exists('.htaccess') AND !$REMOTE_USER ) {
# include_ecrire ("inc_acces.php3"); include_ecrire ("inc_acces.php3");
# ecrire_acces(); ecrire_acces();
debut_cadre_trait_couleur("cadenas-24.gif", false, "", debut_cadre_trait_couleur("cadenas-24.gif", false, "",
#_T('info_fichiers_authent') _T('info_fichiers_authent'));
_L("accès aux document joints par leur URL"));
$creer_htpasswd = lire_meta("creer_htpasswd"); $creer_htpasswd = lire_meta("creer_htpasswd");
echo "<div class='verdana2'>", _T('texte_fichier_authent'), "</div>";
echo "<div class='verdana2'>";
afficher_choix('creer_htpasswd', $creer_htpasswd,
array('oui' => _T('item_creer_fichiers_authent'),
'non' => _T('item_non_creer_fichiers_authent')),
' &nbsp; ');
echo "</div>";
echo "<div style='text-align:$spip_lang_right'><INPUT TYPE='submit' NAME='Valider' VALUE='"._T('bouton_valider')."' CLASS='fondo'></div>";
fin_cadre_trait_couleur();
echo "<p>";
}
###### ATTENTION EXPERIMENTAL:
//
// Creer fichier .htaccess dans les rpertoires de documents
//
if ($options == "avancees" AND !$REMOTE_USER ) {
debut_cadre_trait_couleur("cadenas-24.gif", false, "",
_L("Acc&egrave;s aux document joints par leur URL"));
# include_ecrire ("inc_acces.php3"); vient d'etre fait
$creer_htaccess = gerer_htaccess();
echo "<div class='verdana2'>"; echo "<div class='verdana2'>";
# echo _T('texte_fichier_authent');
echo _L("Cette option interdit la lecture des documents joints si le texte auquel ils se rattachent n'est pas publi&eacute"); echo _L("Cette option interdit la lecture des documents joints si le texte auquel ils se rattachent n'est pas publi&eacute");
echo "</div>"; echo "</div>";
echo "<div class='verdana2'>"; echo "<div class='verdana2'>";
afficher_choix('creer_htpasswd', $creer_htpasswd, afficher_choix('creer_htaccess', $creer_htaccess,
array('oui' => _L("interdire la lecture"), array('oui' => _L("interdire la lecture"),
#_T('item_creer_fichiers_authent'),
'non' => _L("autoriser la lecture")), 'non' => _L("autoriser la lecture")),
# _T('item_non_creer_fichiers_authent')), ' &nbsp; ');
' &nbsp; ');
echo "</div>"; echo "</div>";
echo "<div style='text-align:$spip_lang_right'><INPUT TYPE='submit' NAME='Valider' VALUE='"._T('bouton_valider')."' CLASS='fondo'></div>"; echo "<div style='text-align:$spip_lang_right'><INPUT TYPE='submit' NAME='Valider' VALUE='"._T('bouton_valider')."' CLASS='fondo'></div>";
......
...@@ -128,6 +128,20 @@ function generer_htpass($pass) { ...@@ -128,6 +128,20 @@ function generer_htpass($pass) {
else return ''; else return '';
} }
function gerer_htaccess()
{
$mode = lire_meta('creer_htaccess');
$r = spip_query("SELECT extension FROM spip_types_documents");
while ($e = spip_fetch_array($r)) {
spip_log(_DIR_DOC . $e['extension']);
if (is_dir($dir = _DIR_DOC . $e['extension'])) {
if ($mode == 'oui')
verifier_htaccess($dir);
else @unlink("$dir/.htaccess");
}
}
return $mode;
}
initialiser_sel(); initialiser_sel();
......
...@@ -60,6 +60,7 @@ function init_config() { ...@@ -60,6 +60,7 @@ function init_config() {
'charset' => 'iso-8859-1', 'charset' => 'iso-8859-1',
'creer_htpasswd' => 'non', 'creer_htpasswd' => 'non',
'creer_htaccess' => 'non',
'langue_site' => $lang, 'langue_site' => $lang,
...@@ -263,7 +264,8 @@ function appliquer_modifs_config() { ...@@ -263,7 +264,8 @@ function appliquer_modifs_config() {
// modifs de secu (necessitent une authentification ftp) // modifs de secu (necessitent une authentification ftp)
$liste_meta = array( $liste_meta = array(
// 'secu_avertissement', // n'existe plus ! // 'secu_avertissement', // n'existe plus !
'creer_htpasswd' 'creer_htpasswd',
'creer_htaccess'
); );
while (list(,$i) = each($liste_meta)) while (list(,$i) = each($liste_meta))
if (isset($GLOBALS[$i]) AND ($GLOBALS[$i] != lire_meta($i))) if (isset($GLOBALS[$i]) AND ($GLOBALS[$i] != lire_meta($i)))
......
...@@ -51,7 +51,7 @@ function generer_url_auteur($id_auteur) { ...@@ -51,7 +51,7 @@ function generer_url_auteur($id_auteur) {
function generer_url_document($id_document) { function generer_url_document($id_document) {
if (intval($id_document) <= 0) if (intval($id_document) <= 0)
return ''; return '';
if ((lire_meta("creer_htpasswd")) == 'oui') if ((lire_meta("creer_htaccess")) == 'oui')
return "../spip_acces_doc.php3?id_document=$id_document"; return "../spip_acces_doc.php3?id_document=$id_document";
if ($row = @spip_fetch_array(spip_query("SELECT fichier FROM spip_documents WHERE id_document = $id_document"))) if ($row = @spip_fetch_array(spip_query("SELECT fichier FROM spip_documents WHERE id_document = $id_document")))
return '../' . ($row['fichier']); return '../' . ($row['fichier']);
......
...@@ -995,7 +995,10 @@ function creer_repertoire($base, $subdir) { ...@@ -995,7 +995,10 @@ function creer_repertoire($base, $subdir) {
function creer_repertoire_documents($ext) { function creer_repertoire_documents($ext) {
# est-il bien raisonnable d'accepter de creer si creer_rep retourne '' ? # est-il bien raisonnable d'accepter de creer si creer_rep retourne '' ?
return _DIR_DOC . creer_repertoire(_DIR_DOC, $ext); $dir = _DIR_DOC . creer_repertoire(_DIR_DOC, $ext);
// mode parano: verifier a chaque fois
if (lire_meta("creer_htaccess") == 'oui') verifier_htaccess($dir);
return $dir;
} }
// Pour les documents comme pour les logos, le filtre |fichier donne // Pour les documents comme pour les logos, le filtre |fichier donne
......
...@@ -538,7 +538,6 @@ function calcul_balise_logo ($p) { ...@@ -538,7 +538,6 @@ function calcul_balise_logo ($p) {
eregi("^LOGO_([A-Z]+)(_.*)?$", $p->nom_champ, $regs); eregi("^LOGO_([A-Z]+)(_.*)?$", $p->nom_champ, $regs);
$type_objet = $regs[1]; $type_objet = $regs[1];
$suite_logo = $regs[2]; $suite_logo = $regs[2];
spip_log($suite_logo);
if (ereg("^_SPIP(.*)$", $suite_logo, $regs)) { if (ereg("^_SPIP(.*)$", $suite_logo, $regs)) {
$type_objet = 'RUBRIQUE'; $type_objet = 'RUBRIQUE';
$suite_logo = $regs[1]; $suite_logo = $regs[1];
......
...@@ -27,7 +27,7 @@ function generer_url_auteur($id_auteur) { ...@@ -27,7 +27,7 @@ function generer_url_auteur($id_auteur) {
function generer_url_document($id_document) { function generer_url_document($id_document) {
if (intval($id_document) <= 0) if (intval($id_document) <= 0)
return ''; return '';
if ((lire_meta("creer_htpasswd")) == 'oui') if ((lire_meta("creer_htaccess")) == 'oui')
return "spip_acces_doc.php3?id_document=$id_document"; return "spip_acces_doc.php3?id_document=$id_document";
if ($row = @spip_fetch_array(spip_query("SELECT fichier FROM spip_documents WHERE id_document = $id_document"))) if ($row = @spip_fetch_array(spip_query("SELECT fichier FROM spip_documents WHERE id_document = $id_document")))
return ($row['fichier']); return ($row['fichier']);
......
...@@ -27,7 +27,7 @@ function generer_url_auteur($id_auteur) { ...@@ -27,7 +27,7 @@ function generer_url_auteur($id_auteur) {
function generer_url_document($id_document) { function generer_url_document($id_document) {
if (intval($id_document) <= 0) if (intval($id_document) <= 0)
return ''; return '';
if ((lire_meta("creer_htpasswd")) == 'oui') if ((lire_meta("creer_htaccess")) == 'oui')
return "spip_acces_doc.php3?id_document=$id_document"; return "spip_acces_doc.php3?id_document=$id_document";
if ($row = @spip_fetch_array(spip_query("SELECT fichier FROM spip_documents WHERE id_document = $id_document"))) if ($row = @spip_fetch_array(spip_query("SELECT fichier FROM spip_documents WHERE id_document = $id_document")))
return ($row['fichier']); return ($row['fichier']);
......
...@@ -12,11 +12,6 @@ function copier_document($ext, $orig, $source) { ...@@ -12,11 +12,6 @@ function copier_document($ext, $orig, $source) {
ereg_replace("[^.a-zA-Z0-9_=-]+", "_", ereg_replace("[^.a-zA-Z0-9_=-]+", "_",
translitteration(ereg_replace("\.([^.]+)$", "", translitteration(ereg_replace("\.([^.]+)$", "",
ereg_replace("<[^>]*>", '', basename($orig))))); ereg_replace("<[^>]*>", '', basename($orig)))));
// a amliorer au plus vite
$secure = lire_meta("creer_htpasswd") == 'oui';
if ($secure)
verifier_htaccess($dir);
else @unlink("$dir/.htaccess");
# bien vu ? # bien vu ?
if ($orig == ($dest . '.' . $ext)) return $orig; if ($orig == ($dest . '.' . $ext)) return $orig;
......
0% Chargement en cours ou .
You are about to add 0 people to the discussion. Proceed with caution.
Terminez d'abord l'édition de ce message.
Veuillez vous inscrire ou vous pour commenter