2012-01-01 6 views
0

誰かが.jsファイルまたは.cssファイルのいずれかをブラウザに開いた場合、別のコンテンツを表示することは可能でしょうか? .jsファイルと.cssファイルでPHPコードを実行するようにApacheを設定しました。ファイルがWebページによって要求されたのか、ユーザーが直接閲覧したのかを検出するにはどうすればよいですか?PHPを使用してJavascriptファイルとCSSファイルを「クローク」するにはどうすればよいですか?

編集:自分のファイルを100%隠す方法がないことを知っています。私は人々が私のコードをコピーすることを妨げる最善の方法を探しています。

+4

できません。あなたができる最善の方法は、[難読化](http://stackoverflow.com/questions/194397/how-can-i-obfuscate-javascript)と[minify](http://en.wikipedia.org/wiki/Minification_(プログラミング)))それ。 –

+3

これはもう一つのケースです。「情報を与えずに誰かに情報を与えることはできません。」 – Ben

答えて

7

ブラウザで動作するウェブ上のものは、真に隠蔽することはできません。ブラウザは、ファイルを要求しているエージェントだけで、任意のエージェントがファイルを要求しているのと同じです。サーバーは、Webページの一部としてJSファイルをダウンロードするブラウザと、JSファイルをダウンロードして表示するユーザーとの間に違いはないことを認識しています。サーバーには、ファイルをダウンロードするだけの要求です。サーバーは、何が行われるのか分からない。

さらに、JSファイルとCSSファイルは通常、パフォーマンス上の理由から、サーバーとは独立して取得できるディスクキャッシュに保持されます。

あなたが行うことができる唯一のことは、小型化と難読化でコードを隠すことです。それが物事をより効率的にするので、細分化も理にかなっています。私は個人的に難読化を推奨しません。なぜなら、それは決定された視聴者を実際には止めないからです。ブラウザがJSファイルを理解することができれば、ハッカーもそれを実行できます。

一般的に、人々は自分のjavascriptが実際に比べて何らかの形で重要な秘密だと思っているようです。本当に保護する必要のある秘密のアルゴリズムがある場合は、サーバー上でそのコードを保持し、必要に応じてクライアントのjavascriptからアクセスするためにajax呼び出しを使用することをお勧めします。

+3

最後の段落は実際にそれを要約すると思います。人々がそれを見ることを望まないなら、それを彼らに送ってはいけません。あなたの秘密をサーバーに保管しておいてください。 – FakeRainBrigand

+2

+1。あなたの最後の段落に加えて、何人かの人々は、そこに何千人もの人々がそれをコピーするように並んでいるように、自分のコードがどれほど良いかという過度に膨らんだ感覚を持っていると思います。 (私はOPがそのような人物であることを暗示するつもりはない、これはすべてのWeb開発者がある時点で尋ねる質問だと思う) – nnnnnn

0

ユーザーがHTTP Referrerヘッダーをチェックしてファイルを直接呼び出すかどうかを検出できます。 しかし、ユーザがFirebugまたは同等のツールをチェックインしてスクリプトのソースを確認することはできません。

+0

または、参照者ヘッダーを任意に設定する。ディスクキャッシュから取得する)、またはネットワークトラフィックアナライザで取得します。ブラウザへのアクセスを許可し、人のアクセスを許可しない方法はありません。 – jfriend00

関連する問題