2011-03-07 3 views
2

Je travaille sur un navigateur de fichiers (un gestionnaire de fichiers très léger si vous préférez) basé sur PHP et Javascript.Navigateur de fichiers Ajax; Quelles sont les bonnes pratiques

Je construis un TreeView avec mes dossiers:

<ul id="treeview"> 
    <li><a href="#">Folder 1</a></li> 
    <li><a href="#">Folder 2</a> 
     <ul> 
      <li><a href="#">Folder 2.1</a></li> 
      <li><a href="#">Folder 2.2</a></li> 
     </ul> 
    </li> 
    <li><a href="#">Folder 3</a></li> 
</ul> 

Chaque lien représente un dossier. Ce que je veux faire ici est de charger le contenu d'un dossier après avoir cliqué dessus.

Je possède ce code PHP pour le faire:

public function getContent($path) 
{ 
    //fetch the content of $path directory 
} 

Je le code JS pour gérer les événements:

$('#treeview a').live('click',function(e){ 
    e.preventDefault(); 
    var folder = //here : get the path 
    loadContentInPanel(folder); 
}); 

Mais je ne sais pas comment obtenir le chemin du dossier cliqué en toute sécurité. Dois-je l'ajouter directement dans un attribut comme celui-ci? :

<li><a href="root/folder2/folder2.1/"> Folder 2.1</a></li> 

Idéalement je voudrais le chemin ne soit pas visible (pas clairement lisible au moins) à l'utilisateur final. Je pensais construire un lien avec base64_encode() mais est-ce une bonne idée?

Merci pour vos suggestions.

Répondre

1

Vous donnez déjà le chemin d'accès au dossier avec votre arborescence, je ne vois pas de problème à l'ajouter à l'élément réel.

<li><a href="root/folder2/folder2.1/"> Folder 2.1</a></li> 

sera en

<ul id="treeview">//root 
    <li><a href="#">Folder 1</a></li> 
    <li><a href="#">Folder 2</a> //folder2 

Effectuer tous vos contrôles de sécurité à la fonction « getContent » et vous serez bien.

+0

oui vous avez raison sur le chemin. Juste donner l'arborescence mais pas le chemin complet semble être une bonne solution – grunk

1

Si vous avez juste besoin d'une obfuscation simple (tout dev serait en mesure d'obtenir le chemin réel en un rien de temps), base64_encode() est le moyen le plus simple (à condition que votre chemin ne dépasse pas 600-700 caractères). Soit dit en passant, n'oubliez pas que la sécurité ne doit pas être basée sur l'obscurcissement, mais sur un accès solide, vérifiez les ressources dont vous êtes jaloux.

Questions connexes