非表示のコンテンツを保護するためにキーボード スクリプトを無効にする方法を探しています。
3 に答える
できません。ページを表示するにはソースをダウンロードする必要があるため、ユーザーは常にソースを表示できます。
ソースを表示する方法は、防止しようとしているものよりも多くあります。
- ファイアバグの使用
- wgetの使用
- コンテンツを右クリックして「ソースを表示」を選択
- メニューオプションの使用
- 真ん中の男経由
- おそらくもっと...
これはそれほど複雑ではありませんが、まったく信頼できません。他のすべての Javascript 保護と同じです。
最初のトリック(IE非互換):
function denyKey(event) {
var code = event.keyCode;
if(event.ctrlKey) {
if(code==85)
return false;
}
}
window.addEventListener("keydown", denyKey);
私のコードは単なるスクラッチであり、クロスブラウザーではありません。ここでkeyCodes を取得します。コードの使用を思いとどまらせたいので、コードにはあまり力を入れていません。
ユーザーにデータを送信すると、キーを渡さずに暗号化しない限り、データを読み取ることができます。これは、次のいずれかを意味します。
- JavaScript認証
- 秘密の読み込みページ
- Javascript「ダウンロードする前にお待ちください...」
- ブロックされたマウスボタン
..ユーザーによってバイパスされる可能性があります。
たとえば、マウスボタンのブロックを解除するブックマークレットがあります。
そんなことはあり得ない。仮にあったとしても、それは恐ろしい防御だっただろう。任意のページのソースを取得する簡単なスクリプトを作成することさえできます。クライアントが見るものはすべて、「ソースを表示」できます (誰かが編集できます)。サーバー側のコードのみが安全です。実際のブラウザを介してしかページを表示できなかったとしても (実際にそうすることはできません)、アクセラレータ キーやその他のショートカットを見落とす可能性があります。クライアントにコードを見せたくない場合は、渡さないでください。それをサーバー側に保持する (.txt
ファイルではなく、アクセス可能である) か、保持しないでください。