2

私は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()でリンクを構築しようと考えていましたが、それは良い考えですか?

あなたの提案をありがとう。

4

2 に答える 2

1

単純な難読化が必要な場合(どの開発者もすぐに実際のパスを取得できる)、base64_encode()が最も簡単な方法です(パスが600〜700文字以下の場合)。

ちなみに、セキュリティは難読化に基づくべきではなく、嫉妬しているリソースへの確実なアクセスチェックに基づくべきであることを忘れないでください。

于 2011-03-07T14:02:16.633 に答える
1

ツリービューでフォルダへのパスをすでに提供しているので、実際の要素に追加しても問題はありません。

<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」関数ですべてのセキュリティチェックを実行すれば、問題はありません。

于 2011-03-07T14:07:00.590 に答える