● お客様システムの組み込み方・よくある質問

1.アクセスする人間によって、印刷を許可したり、不可にしたりしたいのですが、できますか?
はい、できます。具体的な設置サンプルもこちらにあります。「どでこもSHTML」でプロテクトコード(JSファイル)を作成していただく際に、印刷許可のパターンと印刷不可のパターンと2種類作成してください。例えば、印刷許可の場合にはprint_ok.jsを読み込ませ、印刷不可の場合にはprint_no.jsを読み込ませます。例を挙げてみます。


2. 特定のページのみ印刷禁止・テキスト選択禁止・画像のコピー禁止にしたいです。サーバサイドSHTMLを導入すると全てのページでプロテクト機能が問答無用に有効になってしまうのでしょうか?
まず、サーバサイドSHTMLは、HTMLソースを難読化するPHPライブラリであり、それ自体には右クリック禁止機能や画像のコピー禁止機能などはないことをご理解ください。右クリック禁止機能や画像のコピー禁止機能などは、姉妹商品であるHTML難読化ソフト「SHTML」(Windows98/98SE/ME/2000/XP/Vistaで動作。税込み7,980円。サーバサイドSHTMLご購入者には無償で提供させていただきます。)を併用していただく必要があります。

WindowsアプリケーションであるSHTMLで、右クリック禁止などのプロテクトコード(JSファイル)を生成していただき、そのJSファイルをPHPファイルで出力するHTMLソースから読み込んでいただくイメージになります。

PHPファイルの中で、パラメータを識別させることで、「ページAに対しては、右クリックは禁止して画像のコピーは禁止したいけれど印刷は許可したい。」というJSファイルを読み込ませ、「ページBに対しては、右クリックも禁止し・印刷も禁止する。PrintScreenキーによるコピーも禁止する」というJSファイルを読み込ませるなどのバリエーションも可能です。アクセスする人物によって(cookieなどで判別)、読み込ませるJSファイルを変えることで、管理者には印刷を許可するが、そのほかの人には許可しないなどの運営も可能です。

ですから、全てのページで問答無用にプロテクトコードが有効になるということはありません。プロテクトコードが読み込まれたページのみプロテクトコードが有効になりますし、弊社PHPライブラリを読み込んで、必要な関数を実行された場合のみ、該当PHPファイルが出力するHTMLソースは難読化されます。

サーバにインストールしていただくといっても、単なるライブラリですから、サーバ全体に影響を与えるわけではなく、ライブラリを読み込んだPHPファイルのみ影響を受けます。弊社ライブラリを読み込まないPHPファイルの中で、普通にprintするだけでは、平文のHTMLソースがそのまま出力されます。

3. PrintScreenキー対策をしたいのですが、可能ですか?
はい、弊社の姉妹商品であるHTML暗号化ソフト「SHTML」(Windows98/98SE/ME/2000/XP/Vistaで動作。税込み7,980円。)の有料オプション(税込み20,000円/1ドメイン)を併用していただくことで可能です。サーバサイドSHTMLは、(動的な)HTMLソースを難読化するPHPライブラリであり、それ自体には右クリック禁止機能や画像のコピー禁止機能などはありませんので、SHTMLを併用していただく必要があります。

ですから、PrintScreenキー対策を実行されたい場合には、1ドメインでの運営の場合で、最低でも、

サーバサイドSHTML(PHPライブラリ)Standardコース・・・・・72,000円
HTMLソース難読化ソフト「SHTML」(Windowsアプリ)・・・・・・   0円
PrintScreenキー対策(有料オプション)・・・・・・・・・・・・・   20,000円
-------------------------------------------------------------------
合計 92,000円
が必要になります。

PrintScreenキー対策の詳細は、こちらをご覧ください。


4. サーバサイドSHTMLで難読化すれば、フォーム送信されるデータも難読化される、と考えて良いですか?
いいえ、サーバサイドSHTMLは、ブラウザに表示されるコンテンツのHTMLソースを難読化するものであり、サイト訪問者がフォームに入力したデータを難読化してサーバに送信する機能はありません。お間違えのないようにお願いします。通信内容の難読化には、やはりSSLを別途導入していただく必要があります。

5. ページの全てを難読化するのではなく、一部分だけ難読化したいのですが可能ですか?
可能です。難読化したい文字列をgetEncryption_shtml()関数に渡していただく仕様になっていますから、逆に言えば、引数に渡さなければ、そのままprintされます。ですから、「難読化する部分」と「難読化しない部分」が交互に連続することもOKです。ただし、あまり細かく関数を呼び出すようにされますと、処理時間がかえってかかることもありますし、またそれ以上に重要かもしれない問題として、「生成されるHTMLソースのファイルサイズ(総和)が非常に大きくなり、転送量が大きくなる問題と、ブラウザがデータを処理するのに時間がかかる問題」が生じる可能性があります。

ですから、「難読化しないブロック」と「難読化するブロック」は、ある程度固まったサイズで決めていただいたほうがいいです。

6. ページ内の複数個所を難読化したいのですが、可能ですか?
可能です。「難読化しないブロック」と「難読化するブロック」の両方があって、「難読化するブロック」が複数存在するということだと思います。可能です。ただし、前項目の注意事項をご参照ください。

7. ループ処理(forやwhileなど)の中でprintしている箇所があるのですが、この場合に気をつけるべき点はありますか?
ループ処理の中で、そのままgetEncryption_shtml()関数を呼び出すと、それだけ呼び出し回数が多くなり、パフォーマンス上良くないです。一旦、printすべき文字列を変数にコピーしておき、ループを抜けた後に、その変数をgetEncryption_shtml()関数に渡して、printするようにしてください。

生成されるHTMLファイルサイズにも大きな差異が生まれます。詳細は、体験版に含まれていますドキュメント類をご参照ください。


HTMLソース難読化用PHPライブラリ
「サーバサイドSHTML for PHP」
© 株式会社プランセスお問い合わせ