仕様上の制限事項について

  1. 右クリックを禁止しても、あるブラウザを使えば右クリックできます。バグではないのですか?
  2. Javascriptをoffにしているユーザーなら右クリックも可能なのではないですか?
  3. 「SHTML」では、Javascriptでページ全体を暗号化しているそうですが、ということは、Javascriptをoffにしているユーザーには、どのようにページは見えるのですか? 真っ白のページが表示されるのでしょうか?
  4. 「SHTML」で暗号化するとレイアウトの表示が乱れることがあります。
  5. 「SHTML」で暗号化するとファイルサイズがかなり増加します。
  6. メタタグやタイトルタグが暗号化されないのはなぜですか?
  7. フレームのページは、どのように暗号化すればいいのですか? 私のやり方では、どのブラウザでも右クリックが自由にできてしまいます。


FAQ検索:
1.右クリックを禁止しても、あるブラウザを使えば右クリックできます。バグではないのですか?
「『SHTML』の動作環境」のページにて明記していますように、「SHTML」においては、全ての機能が全てのブラウザで動作することを保証するものではありません。ただし、『SHTML』の全機能は、全ネットユーザーの85%を占めますWindows版IEで有効な機能になっています。また、一部の機能を除いては、その他のブラウザでも概ねサポートしていますので、どの機能でも92%〜94%程度以上のブラウザに対して有効となっております。

なお、どのブラウザ(ユーザーエージェント)でアクセスすれば、どの機能が無効になっているかなどの情報はセキュリティ上の理由から公開いたしておりません。これは皆様方の大切なコンテンツをお守りするためです。ご了承ください。

また、特定のブラウザで「SHTML」の提供する機能が有効にならない場合でも、それはあくまでもそのプロテクト機能に関してのみ意図した動作にならないだけであり、特定のブラウザでのみ表示が乱れたり、文字化けしたりするようなことはありません。また、HTMLソースはもちろん暗号化されています。

「SHTML」と同様な機能を提供する海外製ソフトウェアの場合、「さまざまなプロテクト機能が効かない特定のブラウザからのアクセスがあった場合、問答無用で、エラーメッセージを表示するページにリダイレクト(転送)し、一般の公開ページを一切見せないようにするオプションを提供している」事例もあるようですが、「SHTML」ではユーザビリティーを考えて、そのようなオプションは提供しておりません。


2.Javascriptをoffにしているユーザーなら右クリックも可能なのではないですか?
はい、右クリック可能です。ただし、「SHTML」では基本的に(「どこでもSHTML」を除くメニューで)HTMLソース全体をJavasriptで暗号化するため、Javascriptをoffにしているユーザーのブラウザには、画像を含めたコンテンツは一切表示されません。(正確に言えば、「<noscript>〜</noscript>」タグで指定したものしか表示されません。「SHTML」では、「<noscript>このページはJavaScriptがoffでは利用になれません。</noscript>」という趣旨のタグを自動挿入します。このメッセージはカスタマイズ可能です。)

ですから、Javascriptをoffにしているユーザーの場合、確かに右クリックでHTMLソースの表示はできますが、画像の保存を右クリックで行うことはできません。Javascriptをoffにしているユーザーの場合、そもそも画像が表示されていないため、右クリックでは保存できません。また、HTMLソースを表示することができたとしても、暗号化されているため、圧倒的大多数の方には画像のパスなどは解読できません。SHTMLで暗号化したページのサンプルで、ご確認ください。


  


3.「SHTML」では、Javascriptでページ全体を暗号化しているそうですが、ということは、Javascriptをoffにしているユーザーには、どのようにページは見えるのですか? 真っ白のページが表示されるのでしょうか?
ご指摘のとおり、SHTMLの暗号化にはJavascriptを用いています。ですから、Javascriptをoffにしている人には、別途、代替メッセージを「<noscript>〜</noscript>」の中で記述していただかなければ、Javascriptをoffにしているユーザーのブラウザ上には、何も表示されないことになります。ただ、SHTMLでは、デフォルトで、「<noscript>このページはJavaScriptがoffでは利用になれません。</noscript>」という趣旨のメッセージが暗号化HTMLソースの中に挿入されます。Javascriptをoffにしているユーザーのブラウザには、この「<noscript>〜</noscript>」に記述されている内容が表示されることになります。

ちなみに、Javascriptをoffにしているユーザーも統計上3%ほどいます。

また、サーチエンジンによる自動巡回ロボットの大半(全て?)はJavascriptをサポートしていませんので、「<noscript>〜</noscript>」の中に記入されている内容をインデックスしていくことになります。SHTMLによって、デフォルトでも、「<noscript>このページはJavaScriptがoffでは利用になれません。</noscript>」という趣旨のメッセージが暗号化HTMLソースの中に挿入されますが、サーチエンジン対策の意味でも、「<noscript>〜</noscript>」タグの中身は適宜、ご自身で編集してください。SHTMLのウイザード中に編集することも可能ですし、この「<noscript>〜</noscript>」の部分は、暗号化後も編集が可能です。また、HTMLタグも利用可能です。

さらに、SHTMLでは、「<noscript>〜</noscript>」の中にJavascriptをoffにしているユーザーへのメッセージを書くのではなく、Javascriptをoffにしているユーザーからのアクセスに対しては、(Javascriptを使っていない)全く別のページにリダイレクト(転送)させることも可能です。


  


4.「SHTML」で暗号化するとレイアウトの表示が乱れることがあります。
Javascriptの外部ファイル(通常、**.jsというファイル名のものです。)内でdocument.writeしている場合、レイアウトが正しく表示されないことがあります。(Javascriptの関数内(function hogehoge(){〜;}内)でdocument.writeを使用しているいる場合は問題ありません。ユーザー・アクション(onClickイベントなど)に基づく関数によって呼び出されるdocument.writeも問題なく表示されます。)典型的な事例はGoogle AdsenseなどJavascriptによる広告の場合です。

この問題は、ページの一部分を暗号化できる「どこでもSHTML」(2007年3月1日リリースのver. 1.5以降で搭載。)を使うことで解決できます。レイアウトが崩れる原因になっているソース部分より前の部分と後ろの部分の2つに分割し、それぞれ、「どこでもSHTML」で暗号化してください(「Google AdSense」などのJavaScript広告は暗号化しないでそのままにしておきます。「1. 『どこでもSHTML』で暗号化するソース(前半)」「2.暗号化しないソース」「3. 『どこでもSHTML』で暗号化するソース(後半)」と結局は3つのパーツで構成されることになります)。

どこでもSHTMLでのソース分割の具体的方法につきましては、こちらもご参照ください。


  


5.「SHTML」で暗号化するとファイルサイズがかなり増加します。
「SHTML」で暗号化すると、HTMLタグの部分などアルファベットのみを暗号化する場合で約2倍ぐらいになります。日本語を含めて暗号化すると約3倍〜ほどになります。ファイルサイズの縮小は「SHTML」の現在の課題であります。したがいまして、現在のところ、これは仕様になります。

あまり大きなファイルサイズのHTMLファイルを暗号化しますと、表示に時間がかかる環境もあります。弊社における推奨値としましては、25KB程度(画像ファイルのサイズなどは含みません。あくまでもHTMLファイルのサイズです)までを目安と考えていただければと思います。

また、もし、隠したいコードがJavascriptやVBScriptのスクリプト部分のみであるならば、SHTML・Professional版に付属しています「JSファイルの暗号化機能」を利用することで、外部ファイルであるJSファイルのみならず、HTMLの中に記述されたJavascriptやVBScriptもピンポイントで暗号化が可能です。こうすることで、ファイルサイズを最低限のものに抑えることができます。


  


6.メタタグやタイトルタグが暗号化されないのはなぜですか?
タイトルタグを読み取るのは、何もブラウザだけではありません。サーチエンジンによる自動巡回ロボットも、そうです。しかし、自動巡回ロボットはJavascriptを理解できませんので、インデックスの際、Javascriptによって暗号化されていてはタイトルを登録できません。同様に、暗号化されたメタタグを理解できません。SEO対策のために、メタタグによるキーワードを同業者から隠したいというニーズも理解できますが、サーチエンジンにまともに登録されないのでは、意味がないですね。

その他、SHTMLでは、「<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">」などのDOCTYPE 宣言や、外部スタイルシートを参照する際に利用するリンク要素(<link rel=〜>)以外のリンク要素は暗号化せずにそのまま残します。

  


7.フレームのページは、どのように暗号化すればいいのですか? 私のやり方では、どのブラウザでも右クリックが自由にできてしまいます。
フレームのページは一般に3つ以上のページから成り立っていますね。

フレームA フレームB

フレームA
フレームB

フレームセットの配置を記述したファイルC


フレームセットの配置を記述したファイルC

この場合に、ファイルC(<frameset〜>〜</frameset>を含むページ)だけを暗号化して、フレームA及びフレームBについては暗号化しない場合、右クリックが自由にできます。右クリックを禁止したい場合は、フレームA及びフレームBについてそれぞれ暗号化する必要があります。フレームA及びフレームBを暗号化する場合には、「フレーム内の表示を禁止する」のチェックは必ず外してください。このチェックをつけたままですと、フレームAとフレームBがファイルCのフレーム内に表示されることさえ阻止してしまいます。ご注意ください。

では、ファイルCを暗号化することは無意味かといいますとそういうことはありません。ファイルを暗号化することで、フレームAやフレームBのファイル名やパスを知られる危険性は格段に減少します。

framsesetを使ったフレームではなく、iframeタグを使ったフレームでも、同様です。
HTML本体A

iframeタグでincludeしたファイルB

ファイルAだけを暗号化している場合、iframeタグ内のファイルB上にカーソルをもってくれば、右クリックできます。ファイルBのソースを閲覧されたり、画像を保存されたりします。ですから、この場合、ファイルA及びファイルBの両方の暗号化が必要です。本当に保護したいコンテンツがファイルBのほうであるならば、ファイルBの暗号化だけでも良いといえば良いですが、ファイルAも暗号化しておけば、ファイルBのファイル名・パスが漏れないため、より安全になります。