Ajax Files browser; Каковы хорошие практики
Я работаю над файловым браузером (очень легкий файловый менеджер, если хотите) на основе PHP и Javascript.
Я строю дерево с моими папками:
<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>
Каждая ссылка представляет собой папку. Отсюда я хочу загрузить содержимое папки после нажатия на нее.
У меня есть этот код PHP, чтобы сделать это:
public function getContent($path)
{
//fetch the content of $path directory
}
У меня есть этот код JS для обработки событий:
$('#treeview a').live('click',function(e){
e.preventDefault();
var folder = //here : get the path
loadContentInPanel(folder);
});
Но я не знаю, как безопасно получить путь к выбранной папке. Должен ли я добавить его непосредственно в атрибут, как это?:
<li><a href="root/folder2/folder2.1/"> Folder 2.1</a></li>
В идеале я хотел бы, чтобы путь не был виден (по крайней мере, не читабельным) для конечного пользователя. Я думал создать ссылку с base64_encode(), но разве это хорошая идея?
Спасибо за ваши предложения.
2 ответа
Вы уже даете путь к папке с вашим деревом, я не вижу проблемы с добавлением его к фактическому элементу.
<li><a href="root/folder2/folder2.1/"> Folder 2.1</a></li>
Будет в
<ul id="treeview">//root
<li><a href="#">Folder 1</a></li>
<li><a href="#">Folder 2</a> //folder2
Выполните все проверки безопасности с помощью функции getContent, и все будет в порядке.
Если вам просто нужно простое запутывание (любой разработчик сможет получить реальный путь в кратчайшие сроки), тогда base64_encode() - самый простой способ (при условии, что ваш путь не длиннее 600-700 символов).
Кстати, помните, что безопасность должна основываться не на обфускации, а на надежных проверках доступа к ресурсам, которым вы завидуете.