4

ファイアウォールの背後にある静的資産(javascriptとcss)を保護するための手順は何ですか?javascriptを多用する管理セクションがあります。コードを公開したくありません。

私は現在、asseticを使用してすべてのJavaScriptを/web/admin/js/xyz.js内のファイルにコンパイルしています

私が見落としているこれを行う簡単な方法はありますか?

4

2 に答える 2

5

コントローラを使用して静的ファイルを提供し、そのコントローラを保護することができます。何かのようなもの:

/** 
 * Serves static javascript file. 
 * We have configured /secure to be secured by some firewall
 *
 * @Route("/secure/xyz.js", name="static_xyz")
 */
public function staticXyzAction()
{   

    $headers = array(
        'Content-Type' => 'text/javascript',
    );  

    return new Response(file_get_contents($this->get('kernel')
        ->getRootDir().'../web/admin/js/xyz.js'), 200, $headers);
}   

これは、提供したデータの単なる例です。明らかに、最終的なコードでは、提供されるファイルは、Webサーバーから直接アクセスできないディレクトリに配置する必要があります。

このアプローチの明らかな欠点はパフォーマンスです。PHPは、静的ファイルの提供がWebサーバーよりもはるかに遅いですが、負荷によっては、これが問題にならない場合があります。

于 2012-08-05T22:33:58.193 に答える
1

なぜこれらのadminjsファイルを「非表示」にしたいのですか?jsは、重要な認証またはチェック権限を実行するべきではありませんが、それを実行するSf2 Api / Controllerと会話するだけであり、読み取られた場合は重要ではありません。これは概念的な問題です。

ラムダユーザー/ハッカーがこれらのjsファイルを見るのが怖い場合は、Asseticで非常に複雑なランダムjs出力を設定できます。Symfony .htaccessを使用すると、ユーザーは正確なURLを知っている場合にのみ静的ファイルにアクセスでき、ビルドされたアセットを保存するリポジトリを一覧表示できません。ファイアウォールがそれをキャッチします。

そして最後のセキュリティ対策として、Asseticでyui-minifierを使用して、ビルドされたjsファイルを縮小および難読化します。

于 2012-08-11T11:56:49.597 に答える