[Résolu]Soucis de sauvegarde

fabrice_0101fabrice_0101 Member
mars 2008 modifié dans Bogues
Hello!
Je suis un nouvel utilisateur de Pluxml, je tiens avant tout à féliciter l'auteur pour sa qualité, Bravo!

Je n'ai rencontré aucun soucis d'installation, ni de fonctionnement. Je bute sur une seule chose: la sauvegarde. La documentation de Pluxml indique que l'opération est simple, que l'usage d'un soft de ftp permet de sauvegarder... mais ne faut il pas changer quelques paramètres de droits? Car quand j'utilise mon site de ftp, il me renvoie une erreur de transfert "access denied" lors de la récupération des fichiers contenus dans le dossier xml. En effet, en jetant un oeil sur les droits, j'ai remarqué que les fichiers articles étaient en RW- --- --- sauf deux qui sont en RW-R--R-- (!!). Je n'ai pas la possibilité de les changer (ils sont dans le groupe Apache). J'ai bien envie de modifier le contenu du fichier .htaccess de ce dossier, mais quel risque je prend au niveau de la sécurité du dossier? A moins que je fasse complètement fausse route?
J'espère que vous pourrez m'éclairer sur ce point et par avance, je vous remercie :)

Réponses

  • fabrice_0101fabrice_0101 Member
    mars 2008 modifié
    Bonsoir,
    Serais-je le seul à rencontrer un tel problème? Personne aurait une petite idée en tête concernant mon problème? Je suis assez inquiet car tous mes articles sont sur un serveur avec aucune possibilité à ce jour de les rapatrier... Je serais vraiment triste s'ils venaient à disparaître.

    Je viens à nouveau de regarder la liste des articles dans le dossier XML (j'en crée chaque jour et de la même manière, tous ont été fait avec la même version de Pluxml ) , et je m'étonne qu'ils n'aient pas tous les même droits attribués.

    Encore merci pour votre attention !
  • Steph0Steph0 Member
    Salut,

    Tu es chez quel hébergeur ?

    j'ai eu aussi un soucis concernant la suppression (pas le rapatriement) de certains fichiers. Impossible de supprimer ça avec FileZilla.

    Comme je suis pas un pro du ftp non plus, j'ai été faire un tour du côté de ma session chez mon hébergeur (123.fr).
    Là j'ai vu que j'avais accès à un gestionnaire de fichiers permettant d'éditer l'ensemble des fichiers présents sur mon ftp (notamment, et surtout : suppression et édition des droits).

    Regarde de ce côté là, ça peut toujours être une piste.
  • Hello Steph0!
    Je te remercie d'avoir pris le temps de te pencher sur mon problème :)

    Cela ne vient pas de mon hébergeur (que j'ai contacté à ce sujet d'ailleurs) Il m'a assuré qu'il n'y avait aucune restriction de son côté.
    Quand j'ai rencontré mon soucis de transfert du répertoire XML, j'ai tout de suite pensé à des droits que je n'avais pas et suis donc aller voir cela sur mon interface d'administration (plesk 8.3), j'ai tenté de chmoder les fichiers du répertoire en question (en 777, soyons fou ^^) mais cela m'est refusé car ils appartiennent au groupe Apache... Gasp...
    Que faire?
    Quand bien même j'arriverai à chmoder les fichiers articles créés et le copierai sur un disque local, devrais-je faire cette même opération à chaque fois que je voudrai sauvegarder les nouveaux articles? C'est Curieux quand même.
    Quelque chose m'échappe...

    Pleaaaase, help!
    Par avance, merci :)
  • Bonsoir,
    Je vois que mon problème n'attire pas les foules :(
    Suis-je le seul à rencontrer ce problème?
    Diti, je me tourne vers toi comme tu as repris la gestion du développement en mains... Ou vers Skyline qui a programmé Pluxml (si tu nous lis) :) ... Mon problème de droits ne vous inspire pas une idée, une direction pour dépister mon problème? Pourriez-vous répondre quelque chose? Même à la négative si vous ne voyez pas? J'aurais ainsi l'impression d'être au moins entendu :P

    Par avance, je vous remercie :)
  • DitiDiti Member
    Eh bien… Cela m'a fait penser à un ancien problème, mais finalement ce n'est pas le cas. Est-il possible de voir cela avec ton hébergeur ?
  • Bonsoir Diti,

    Je te remercie d'avoir tenté une réponse :)
    Mon hébergeur est Netissime (très sérieux et disponible) . Je l'ai déjà contacté avant de vous faire part du problème, pensant aussi à une restriction ou une curiosité glissée dans les paramétrages de leurs serveurs... mais ils n'en est rien. J'ai eu un des administrateurs qui m'a affirmé que cette restriction Apache n'était pas de leur fait.
    Malgré ce désagrément important, je continue à utiliser Pluxml car ses qualités dépassent largement son inconvénient (...temporaire je l'espère :) )
  • Bonsoir Fabrice,

    Je n'ai jamais rencontré ce problème avant.
    Je te conseille d'enlever les fichiers .htaccess le temps d'un essai (copie les sur ton pc pour pouvoir les remettre après), de mettre tous les fichiers du répertoire en chmod 777 et, sans revenir sur ton pluxml (reste à espérer qu'aucun visiteur de vienne appeler une page), de tenter une copie des fichiers par ftp.
    Si cela ne marche pas je pense qu'il faudra alors se tourner vers ton logiciel ftp puis à nouveau vers l'hébergeur.
  • fabrice_0101fabrice_0101 Member
    mars 2008 modifié
    Bonsoir SkyLine :)

    Merci d'avoir répondu à mon appel !
    J'ai déjà tenté ce que tu me proposes... hélas, cela n'a eu aucun effet.
    Afin de limiter les risques d'intrusions, j'ai fait fait les manipulation suivantes, et ce, très rapidement et en fin de soirée (3heures du mat ^^):

    - Stockage dans le presse papier le contenu des .htaccess.
    - Suppression pure et simple du .htaccess contenu dans le dossier XML de Pluxml.
    - Visualisation On Line (avec mon interface Plesk 8.3) des fichiers contenus dans XML: Les fichiers ont toujours le même chmod: 644 pour deux d'entre eux et 600 pour tous les autres fichiers.
    - Utilisation de deux softs de ftp différents: Ftp Expert sur WinXP et RBrowser sur OSX: j'obtient les même résultats.

    Dans tous les cas, je n'ai toujours pas les droits pour chmoder les fichiers.
    Comme l'effacement du fichier .htaccess n'a eu aucun effet, je l'ai recrée rapidement pour rétablir la sécurité du site.

    J'ai du mal à imaginer un problème de configuration de mon hébergeur car Pluxml a réussi à créer deux articles en les chmodant en 644... ce qui serait impossible si une restriction venait de mon hébergeur. Si tel était le cas, tout serait en chmod 600.
    Mes soft de ftp sont bien réglés car je les utilise pour d'autres applications Php/MySQL et manipulations de fichiers directement sur mon espace d'hébergement.

    J'ai même tenté d'installer pluxml dans un autre dossier de mon espace d'hébergement. Juste après la création d'un premier article, j'ai jeté un oeil sur son chmod.... même problème.

    Délire... :(
    Là, je sêche.

    PS: Pour revenir à .htaccess, voici pour info, leur contenu:
    <Files *>
    Order allow,deny
    Deny from all
    </Files>
  • Bonjour :)

    J'oubliais! J'ai aussi fait la manipulation suivante: Par l'interface Plesk, j'ai créé un fichier dans le dossier XML et j'ai aussitôt regardé les droits qui lui ont été attribués: 644! J'ai aussi créé en local un fichier texte que j'ai uploadé à l'aide d'un de mes programmes de ftp.... ses droits sont bons aussi.

    Je pense que si le problème venait de mon hébergeur, ses droits auraient dû être 600 comme les autres... non?
    Qu'en pensez_vous?
  • J'ai aussi ce problème mais j'ai pas trouvé de solutions. :(
  • Jajack a écrit:
    J'ai aussi ce problème mais j'ai pas trouvé de solutions. :(
    Bonsoir Jajack,

    Je te remercie d'avoir remonté cette information :) Je suis, en quelque sorte, rassuré de ne pas être le seul dans ce cas.
    Ce bug est quand même important. Car toute application qui se veut sérieuse et fonctionnant sur le principe d'une base de donnée se doit d'offrir une solution de sauvegarde stable et fonctionnelle. Cela me parait être un minimum.

    Autre curiosité rencontrée dans le cadre de ce bug:
    Ce jour, j'ai uploadé une photographie, elle s'est (elle aussi) retrouvée avec les même restrictions de chmod 600. Plus curieux encore, c'est que toutes les photographies anciennement uploadées il y a quelques temps n'ont pas ce problème...

    En examinant les dates de création/modifications des fichiers (xml et images), j'ai essayé d'en tirer une explication pensant que le problème aurait pu survenir à partir d'une date précise... mais il n'en est rien. L'attribution du chmod 600 est chaotique.

    J'ai aussi tenté d'intégrer un bout de code php dans la classe.admin.php pour chmoder en 644 la variable '$filename' associée à la création et modification d'un fichier article en xml. Mais cela fut sans effet: Les articles crées ou modifiés gardent malgré cela un chmod de 600 :/

    Je vois avec le plus grand plaisir que la chasse au bug est lancée sur Pluxml, nous avons donc des chances de voir venir une solution :)

    Je continue à me creuser la tête pour trouver une solution. En attendant... Skyline? Diti? une petite idée? :)

    Par avance, merci!
  • Bonsoir

    Comment faites vous vos 'restaurations '?

    ftp ?, quel soft ?

    interface d'administration de votre hebergement ?

    simple script d'upload ?

    local : windows ou linux ?
    hebergement : windows ou linux ?

    En ligne , s'agit t-il d'un sous domaine/sous repertoire ?
    (quel sont les url de vos pluxml 'buggés ? :) )

    si en sous domaine :
    l'url reflete t-elle ou non l'arborescence du ftp
    ex: http://pluxml.domaine.com ou bien http://domaine.com/pluxml

    Cette difference a son importance et peut influer sur l'accés aux fichiers ou modif de ceux-ci par les scripts.

    par exemple ce topic a deux adresses :

    http://pluxml.org/forum/viewtopic.php?pid=7153 et
    http://forum.pluxml.org/viewtopic.php?pid=7153

    Si l'upload se fait avec l'une des adresses et l'accés avec l'autre , dans le même temps , il peut y avoir une certaine incoherence.

    GC
  • fabrice_0101fabrice_0101 Member
    avril 2008 modifié
    Bonsoir gcyrillus, et merci de te pencher sur mon problème :)

    Si tu reprend le topic depuis le début, les réponses à tes questions s'y trouvent ^^
    ...Sauf pour deux:
    - Je n'utilise pas de sous domaine mais des sous répertoires.
    - L'OS de l'hébergement: Fedora Core 6

    Le site n'étant pas officiellement ouvert, son url n'est pas encore diffusée... mais c'est pour bientôt! Cependant, je constate le même problème avec Pluxml beta2 modifié (MultiUsers+Editeur+Recherche+Liens+SiteMap) mais aussi avec Pluxml beta 3 non modifié (je l'ai installé dans un répertoire autre)

    Voila :)

    EDIT: Je viens de faire un saut sur ton site... tu m'as donné sacrement envie de goûter à tes recettes!! Hop! j'ai mis de ce pas ton site dans mes signets :D
  • gcyrillusgcyrillus Member
    avril 2008 modifié
    bon appétit :)

    Une autre soluce consisterait a contournait le problème en forçant le téléchargement de tes fichiers xml via ton navigateur:
    <a href="download-doc.php?file=ton_fichier">télécharger </a>

    Tom fichier download

    La var file c'est ton fichier

    <?
    $file=$_GET;

    //telechargement
    $taille=filesize("doc/$file");
    header("Content-Type: application/force-download; name=\"$file\"");
    header("Content-Transfer-Encoding: binary");
    header("Content-Length: $taille");
    header("Content-Disposition: attachment; filename=\"$file\"");
    header("Expires: 0");
    header("Cache-Control: no-cache, must-revalidate");
    header("Pragma: no-cache");
    readfile("doc/$file");
    exit();
    ?>
    Je n'ai pas tester ce script limiter a l'essentiel , donc dangereux . a ne pas laisser trainé sur ton ftp , il permet en substances de telecharger n'importe quel fichier (php inclus) a partir du navigateur.

    Je pense que si ce script est efficace (multi-navigateur) , on peut l'intégrer facilement a la page d'administration qui liste les articles , en y ajoutant un lien de téléchargement en plus des liens éditer et supprimer .

    (un plugin/greffon en plus peut-être :) .

    GC

    autres sources :
    http://fr.php.net/manual/fr/function.header.php

    <edit> tu peut tester ce fichier en le mettant dans le repertoire core.
    nomme le comme tu veut et efface le sitot que possible
    <?
    if($_GET['file']){
    $file=$_GET['file'];
    
    //telechargement
    $taille=filesize($file);
    header("Content-Type: application/force-download; name=\"$file\"");
    header("Content-Transfer-Encoding: binary");
    header("Content-Length: $taille");
    header("Content-Disposition: attachment; filename=\"$file\"");
    header("Expires: 0");
    header("Cache-Control: no-cache, must-revalidate");
    header("Pragma: no-cache");
    readfile($file);
    exit();
    }
    ?><a href="test.php?file=xml/0001.001.premier-article.xml">telecharger </a>
    
    la variable 'xml/0001.001.premier-article.xml' est le nom de l'article par defaut creer a l'install de plux , mais en changeant nom et chemin de fichier on peut dans la barre d'adresse faire telecharger n'importe quel autre fichier de ton site , comme celui qui te connecte a ta bdd ... ou un fichier .htaccess ou index.php , etc ...

    A ne pas laisser trainer sans le sécuriser d'abord !

    Pour moi le test est concluant , reste a voir comment l'integrer a l'administration des articles sans que l'on puissent modifier le fichier ciblé, la fonction delarticle réecrite devrait convenir en faisant un lien du style /admin/index.php?bck=0001
    seule un article pourra etre telecharger , le script est accessible uniquement par cette page et si connecté

    Quelqu'un pour proposer autre chose ou mettre en garde sur un prob de sécurité eventuelle ?
  • fabrice_0101fabrice_0101 Member
    avril 2008 modifié
    Bonjour gcyrillus,

    Je te remercie beaucoup pour ce développement et le temps accordé à ce dernier. J'ai fait le test et cela fonctionne parfaitement!
    ce code se moque royalement du chmod du fichier (600 ou 644 comme c'est le cas dans mon dossier xml) :D Merci !

    Maintenant, il serait intéressant d'automatiser la tâche de rapatriement en local de tous les fichiers xml et de façon sécurisée! Mettre une telle fonction dans la partie admin de pluxml serait en effet le top! Reste à voir de quelle manière cela pourrait être fait.

    Encore merci gcyrillus et bon week end :)
  • fightsoulfightsoul Member
    avril 2008 modifié
    @ gcyrillus : Niveau sécurisation j'pense que si on inclus le code dans class.admin.php cela devrais suffire (j'dis ça, j'dis rien, j'suis pas expert en sécurité ^^). Voilà ce que j'ai bricolé vite fais avec le code que t'as donné.
    Dans class.admin.php :
    function backup($file){
    		if(preg_match('/^[0-9]{4}$/',$file)){
    			$motif = '/'.$file.'.([0-9]{3}|home|draft)(.[a-z0-9-]*)*.xml$/';
    			if($result = $this->con->query($motif)){
    				$file = PLX_DOC.$this->config['racine_xml'].'/'.$result['0'];
    				$taille = filesize($file);
    				header("Content-Type: application/force-download; name=\"$file\"");
    				header("Content-Transfer-Encoding: binary");
    				header("Content-Length: $taille");
    				header("Content-Disposition: attachment; filename=\"$file\"");
    				header("Expires: 0");
    				header("Cache-Control: no-cache, must-revalidate");
    				header("Pragma: no-cache");
    				readfile($file);
    				exit();
    			}
    		}
    	}
    
    Dans admin/index.php :
    if(!empty($_GET['bck'])){
    	$admin->backup($_GET['bck']);
    	header('Location: index.php');
    }
    
    (j'sais pas si le header est bien utile ici)
    Et ajout dans la boucle des articles :
    <a href=\"?bck=".$admin->result->f('file_num')."\" title=\"Sauvegarder cette article\">Sauv.</a>
    
  • fabrice_0101fabrice_0101 Member
    avril 2008 modifié
    Bonsoir fightsoul,

    Et bien...Ton codage est très bon pour du bricolage :D Je te remercie!
    Je pense que cette fonction devrait être retenue pour la prochaine mouture de pluxml :)

    Par ta méthode, il m'est maintenant possible de sauvegarder tous les articles, même chmodés en 600. :D
    Une petite remarque tout de même: le contenue de l'article est bien sauvegardé, il est cependant situé en bas du document sauvegardé...la partie haute du document contient du code appartenant à la page admin (!) Y a t il un moyen de supprimer cela et ne laisser que les lignes appartenant uniquement à l'article? ... A moins que cette curiosité vienne de moi, n'ayant pas inséré les bouts de code exactement où il faudrait? :P
    Ceci dit, même avec cette portion de code en trop dans le document, mes écrits sont sauvegardés et c'est bien l'essentiel!

    Encore merci fightsoul :)

    EDIT: pour info, le code en trop contient le DIV du Header et le DIV de Navigation.
  • @fightsoul , oui c'est tout a fait ce a quoi je pensais

    le header reste necessaire au cas ou le fichier n'existe pas ou est introuvable puis ,
    on peut aussi gardé un nom de fichier au plus proche de celui d'origine.

    voici comment j'ai tester cette fonction avec la variable $msg au besoin :
    ajout dans le fichier class.admin.php
    function saveArticle($file){
            if(preg_match('/^[0-9]{4}$/',$file)){
                $motif = '/'.$file.'.([0-9]{3}|home|draft)(.[a-z0-9-]*)*.xml$/';
                if($result = $this->con->query($motif)){
    					$file = PLX_DOC.$this->config['racine_xml'].'/'.$result['0'];
    					$fichier =$result['0'];					
    				if(is_file($file)){
                    $taille = filesize($file);
                    header("Content-Type: application/force-download; name=\"$file\"");
                    header("Content-Transfer-Encoding: binary");
                    header("Content-Length: $taille");
                    header("Content-Disposition: attachment; filename=\"$fichier\"");
                    header("Expires: 0");
                    header("Cache-Control: no-cache, must-revalidate");
                    header("Pragma: no-cache");
                    readfile($file);
                    exit();
    				}
    			}	else 
    			{
    			return "Fichier à sauvegardé Introuvable";
    			}
    		
    		}
    	}
    
    le test si fichier demandé en conservant le header
    dans le fichier index.php aprés la ligne :
    include('prepend.php');
    if(!empty($_GET['saveart'])){
    	$msg = $admin->saveArticle($_GET['saveart']);
    	header('Location: index.php?&msg='.urlencode($msg).'');
    }
    
    puis le lien avec le js onclick
    aprés :
    <a href=\"?del=".$admin->result->f('file_num')."\" onclick=\"Check = confirm('Supprimer cet article ?'); if(Check == false) return false;\" class=\"delete\">Suppr.</a>
    et devant le
    </li>
    le code du lien :
    |
    			<a href=\"?saveart=".$admin->result->f('file_num')."\" onclick=\"Check = confirm('Copier le fichier xml de cet article  sur le disque?'); if(Check == false) return false;\" class=\"delete\">Sauvegarder (fichier xml).</a>
    
    autant dire que la difference est minime et qusi sans importance.

    @fabrice_0101 met la portion de code qui teste le $_GET apres
    include(prepend.php); et avant include(top.php);
    Tu ne devrais alors ne telecharger que ton fichier xml avec un nom du genre : 0001.001.premier-article.xml
    donc , en principe identique a celui du fichier d'origine.
    Voilou

    Sinon , content de voir un probleme solutionner en contournant le probléme.
    Pourtant , ces histoires de serveurs me laisse toujours trés perplexe (koment k'cé ti k'sa marche ...)

    GC
  • Bonsoir gcyrillus,

    Arf...Je pensais bien que le petit soucis venait de moi :p
    J'ai corrigé comme tu le conseilles et tout est rentré dans l'ordre!

    Quel plaisir de pouvoir sauvegarder aisément et rapidement tout article à partir de la zone d'administration. Pour ma part, mon problème est résolu et bien au delà de mes espérances: Je pensais au mieux me contenter d'un accès ftp et voila que je peux tout gérer de Plumxl: Création, modification, effacement et ...l'archivage d'un article! C'est vraiment super!
    Encore un grand merci et un Bravo à Fightsoul et Gcyrillus :D :D
  • yop yop , joie partagée
Connectez-vous ou Inscrivez-vous pour répondre.