SSIモード(β版)について

  1. 暗号化を行ったところ、きちんと表示されますが、ブラウザのメニューから「表示」→「ソース」を行ってみると、インクルードしたファイルのソースはそのまま表示されてしまいます。なぜですか?

  2. SSIによってインクルードされるファイルは暗号化されないようなので、インクルードされるファイルも別途アドバンスドモードで暗号化したら不具合が発生しました。回避方法を教えてください。

  3. 暗号化前には動いていたSSIプログラムが、暗号化後動かなくなりました。

  4. SSIというのはサーバ側で実行されるはずですから、クライアントの環境は関係がないという認識だったのですが、SSIモードが非常に古いブラウザなどで動かない、そもそもの理由は何ですか?

  5. IE4.xやNetscape 4.xなど非常に古いブラウザでのアクセスの場合には動かないことがあるという仕様は理解できました。ただ、この古いブラウザでアクセスされた場合に表示されるメッセージはカスタマイズできないものでしょうか?

  6. 暗号化後にプログラムを修正したくなりました。どのように変更することができますか?

1.暗号化を行ったところ、きちんと表示されますが、ブラウザのメニューから「表示」→「ソース」を行ってみると、インクルードしたファイルのソースはそのまま表示されてしまいます。なぜですか?

SHTML本体内のSSIモードの説明(1ページ目)でも書いていますように、SSIファイル(***.shtml)を暗号化しても、インクルードされるファイルは暗号化されません。しかしながら、インクルードされているファイルの中身(仮にadd.htmlとします。)は平文のままであっても、add.html上にある画像に対して右クリックで保存することはほとんどのブラウザでできません。HTML本体に埋め込まれた右クリック禁止のコードが、インクルードされたファイル(=add.html)の部分に対しても有効であるためです。(ここがiframeタグを使う場合とSSIによるインクルードの大きな違いです。)

仮に右クリックできたとしても、「画像保護機能」により、ダミーの無色の画像(shtml_blank.gifや無題.bmp)を保存することになるはずです。


  


2.SSIによってインクルードされるファイルは暗号化されないようなので、インクルードされるファイルも別途アドバンスドモードで暗号化したら不具合が発生しました。回避方法を教えてください。
まずは、SHTML本体に収録していますSSIモードご利用上の注意点及び回避策をお読みください。その上でも、解決できない問題につきましては、以下の方法をお試しください。

SSIを使わずにiframeタグで代用が可能であれば、iframeタグを利用していただければと思います。iframeタグをご利用になる際は、HTML本体と、iframeタグで表示されるHTMLファイルの両方を暗号化していただければ、ご期待通りの動作になるかと思います。iframeの場合には、HTML本体の暗号化だけでは、iframeで取り込まれるHTMLドキュメント上では右クリックなどが自由にできますので、ご注意ください。(関連FAQ: フレームのページは、どのように暗号化すればいいのですか? 私のやり方では、どのブラウザでも右クリックが自由にできてしまいます。

もし、iframeタグでは代用が不可能な場合には、たいへん恐縮ではありますが、インクルードされるファイルは平文のままになってしまっていることをご理解いただくか、本SSIモードのご利用をお控えください。もしくは、SSIファイル(***.shtml)本体よりも、インクルードされるファイルの方がより重要な場合には、全く逆の発想で、インクルードされるHTMLファイルをアドバンスドモードで暗号化し、SSIファイル(***.shtml)自体は暗号化しないで、そのままで使う方法を検討してみてください。この場合は、逆に、インクルードされるHTMLファイルの部分は暗号化されていますが、それ以外の部分はそのままとなります。しかし、インクルードされてるHTMLファイルによって埋め込まれた右クリック禁止のタグなどは、HTML本体の画像(SSIファイル=***.shtmlの中でimgタグを使って表示させるようにした画像)などに対しても有効になります。


  


3.暗号化前には動いていたSSIプログラムが、暗号化後動かなくなりました。
まずは、念のため、拡張子を御確認ください。SSIファイルは多くのサーバで、「.shtml」という拡張子でしか動かないようになっているかと思います。

 本製品の製品名「SHTML」とSSIの拡張子は、とくに関係はありません。「SHTML」とは、「Secure HTML (安全なHTML)」の略称です。「SHTML」とは、皆さん方のHTMLページのソースを安全にするために暗号化するソフトです。
したがって、SSIでよく使われる拡張子の「.shtml」とは関係がありません。あくまでも、弊社の造語です。

また、暗号化前は動いていたということであれば、ないとは思いますが、サーバの環境でSSIがそもそもご利用可能な状態になっていたか(セキュリティの関係上、禁止あるいは制限されている場合もあります。)なども、念のため御確認ください。

その上で、それでも動かない場合には、その動かないソース(暗号化前)を添付の上、サポートまでご連絡ください。ソースは、問題を再現できる形で、できるだけ簡略化したものを送ってください。また、暗号化済みのソースを一旦お客様サーバにアップしていただき、弊社のほうで不具合を確認できるようにしてください。

なお、本SSIモードはβ版の位置づけとなります。ご利用の際は、その旨、ご理解ください。

  


4.SSIというのはサーバ側で実行されるはずですから、クライアントの環境は関係がないという認識だったのですが、SSIモードが非常に古いブラウザなどで動かない、そもそもの理由は何ですか?
サーバによって実行されるプログラム部分(<!--#** (中略) -->)まで暗号化してしまえば、サーバはプログラム部分を解釈できません。ですから、この部分は暗号化しない形で残しておく必要があります。

サーバがプログラムを実行し、HTML本体と合成させるべき文字列・ファイルを生成させますが、その部分は暗号化されていません。ですから、HTML本体は暗号化されていますが、インクルードされるファイルや文字列の部分だけ暗号化されていないことになります。

この場合に、インクルードされるべきファイルや文字列の部分(平文)を、暗号化済みHTMLファイルのしかるべき場所に表示させるようにする作業はJavascriptを用いて行っていますが、非常に古いブラウザでは、これを可能とするJavascriptがまだ実装されていなかったために、このJavascriptが動きません。

  


5.IE4.xやNetscape 4.xなど非常に古いブラウザでのアクセスの場合には動かないことがあるという仕様は理解できました。ただ、この古いブラウザでアクセスされた場合に表示されるメッセージはカスタマイズできないものでしょうか?
通常は左のようなアラート(エラーメッセージ)が表示されるのですが、以下のような方法で変更が可能です。ただし、Javascriptの知識が必要ですし、自己責任で行ってください。

暗号化したソースをテキストエディターなどで開きます。「php_shtml」という文字列を検索します。ヒットしたところに、「if(! php_shtml){alert("大変恐縮ではありますが、ご利用になられているブラウザでは、本サイトはご利用になれません。・・・・");location.replace("about:blank");}」とあるかと思います。この部分の日本語は暗号化されていませんので、そのまま編集が可能です。「php_shtml=false;」になる場合というのは、SSIモードが動かないブラウザでアクセスしていること表しています。必要に応じて、日本語部分をカスタマイズしたり、「about:blank」の部分を適当なURLに変更すれば、マイナーブラウザでのアクセスの場合には、別のURLに飛ばすことも可能です。

 カスタマイズされる場合は十分に慎重に行ってください。カスタマイズが原因でプログラムが動かなくなった場合には、弊社ではサポートできない場合もあります。また、アラートとして表示するエラーメッセージの中に改行が入る場合は、「\n」を使ってください。不用意な改行は、Javascriptでは即エラーになりますので御注意ください。

  


6.暗号化後にプログラムを修正したくなりました。どのように変更することができますか?
SSIのプログラム部分(<!--#** (中略) -->)内であれば、暗号化後でも後から変更が可能です。暗号化後のソースファイルをテキストエディタなどで開き、「<!--#」を検索して、必要箇所を修正してください。SSIのプログラム部分は暗号化されていませんので、そのまま修正が可能です。

しかしながら、その他のHTML部分の修正を行いたい場合は、たとえ一文字であっても、オリジナルのファイルを修正後、再び、暗号化していただく必要があります。ですから、暗号化後も、必ずオリジナルのファイルを保存しておいてください。暗号化後のファイルを元のファイルに戻す作業を弊社で承る場合には有料となりますので、ご注意ください。