SHTML--ショートカットキー対策について

  1. ショートカットキー対策が必要なのはなぜですか? また、しないとどういう危険性がありますか?

  2. ショートカットキーを実際に利用されたときに、メッセージを何も表示しないようにしたいのですが、それはできないのですか? 右クリック禁止時には何もメッセージを表示しないことが可能なのに、なぜ、同じようにできないのですか?

  3. ショートカットキー対策はMacでは無意味ではないのですか?

  4. Ctrl+A(全選択)やCtrl+C(コピー)など一部のショートカットだけを禁止してくれればいいのに、Ctrlを押すだけでアラート(メッセージ)が表示されるので、Ctrl+P(貼り付け)も使えません。何とかなりませんか?


FAQ検索:
1.ショートカットキー対策が必要なのはなぜですか? また、しないとどういう危険性がありますか?
例えば、Windows版Firefoxでは、Ctrl+Uでソースを表示できます。ですから、サブウインドウの表示でメニューを消していても、ショートカットキーを使われるとソース表示ができます。同様に、Windows版IEでもショートカットキーでソースの表示は可能です。

仮にショートカットでソース表示をされたとしても、ソースは暗号化されていますので、問題はそれほど起こりません。しかし、テキストのコピーを防止したい場合には、ブラウザによっては、ショートカットキーの使用を禁止しなければ完全防御が難しいのが現状です。
 最大シェア(約85%)を誇るWindows版IEでは、ショートカットキーによってテキスト選択・コピー禁止機能が解除される危険性は極めて低いです。Windows版IEの存在だけを考えるのであれば、ショートカットキー対策はそれほど必要ないことかもしれません。

また、ショートカットキー対策を行うと、CtrlキーやAltキー(Macではコマンドキー+何か別のキー)を押すたびに、必ず、アラート(メッセージ)が表示されます。そのため、正直、うざったい印象をユーザーに与える危険性があります。この機能を使用される場合は、そのあたりも十分にご考慮の上、ご使用ください。


  


2.ショートカットキーを実際に利用されたときに、メッセージを何も表示しないようにしたいのですが、それはできないのですか? 右クリック禁止時には何もメッセージを表示しないことが可能なのに、なぜ、同じようにできないのですか?
Javascriptによるアラート(メッセージ)を表示させない場合、ショートカットキーによるコマンドがそのまま実行されてしまう場合があります。そのため、アラートを非表示にすることはできません。

  


3.ショートカットキー対策はMacでは無意味ではないのですか?
ショートカットキー対策までやる理由は、基本的には、ブラウザ・メニューを隠していることが前提だと思います。サブウインドウ(小窓、別ウインドウの中で表示することで、ブラウザ・メニューを隠したとしても、ショートカットキーでコマンドが実行されてしまうことを防ぎたいからです。つまり、最終的な究極の対策です。

ところが、Macでは、OSの仕様により、メニューを隠して、サブウインドウ)を開くことはできません。そのため、ショートカットキー対策は、残念ながら、行っても無意味のように見えます。

しかしながら、無意味とも言えないケースがあるため、Macにおけるコマンドキーの使用もその対策の対象とさせていただきました。(2005年7月22日修正)


  


4.Ctrl+A(全選択)やCtrl+C(コピー)など一部のショートカットだけを禁止してくれればいいのに、Ctrlを押すだけでアラート(メッセージ)が表示されるので、Ctrl+P(貼り付け)も使えません。何とかなりませんか?
おっしゃることは十分に理解できます。しかし、このような配慮をプログラム内に入れようとしますと、どうしても防御力が低下してしまいます。現状では、「CtrlキーやAltキーを一切使わせない」もしくは「ショートカットキー対策を使用しない」の二者択一になることをご理解ください。

Macにおいても同様で、「コマンドキー+A」(全選択)や「コマンド+C」(コピー)など特定のショートカットだけを禁止することはできません。All or nothingになります。(なお、Macでは、コマンドキー単独を押しても何も反応しません。あくまでも、「コマンド+何か別のキー」でエラーメッセージが表示される仕様になっています。)