● Perl/CGIプログラムについて・よくある質問

1.変数名の衝突を避けるためにはどうすればいいですか?
サーバサイドSHTML for Perlで使用されているライブラリ(**.pl)の変数及び関数名などは全て「_shtml」(一部、大文字の「_SHTML」)を含みます。また、サーバサイドSHTML for Perlが出力する難読化済みHTMLソース内のJavaScriptの変数及び関数名にも「_shtml」が含まれるようにしてあります。


2. 御社提供のプログラム(Perlライブラリ)自体が難読化されているので、その分、処理速度が落ちませんか?
理論的には落ちるでしょうが、弊社がテストを繰り返している限りでは、体感できる範囲ではありませんでした。体験版も準備させていただいておりますので、体験版で動作をご確認ください。

3. プログラムはEUC-JPで作成していますが、最終的な出力はShift_JISにしています。この場合、Standardコースを注文する場合、文字コードはどのバージョンのものを選択すべきですか?
難読化関数であるgetEncryption_shtml関数に第一引数として、難読化処理をしたいと考えておられる文字列を渡していただきますが、その文字コードがShift_JISであればShift_JIS版をご注文ください。難読化したい文字列がEUC-JPでエンコードされているのであれば、EUC-JP版をご注文ください。

ただ、プログラムがEUC-JPであれば、「サーバサイドSHTML for Perl/CGI」もEUC-JP版をご注文されたほうが多くの場合、無難です。プログラムをEUC-JPで作成されていて、出力はShift_JISということは、お客様のプログラム内のどこかで、最終的には文字コード変換をされているはずです。ですから、いままでどおりShift_JISに文字列を変換後、Shift_JIS版の「サーバサイドSHTML for Perl/CGI」で難読化処理をしても理論的にはOKであると言えるでしょう。

しかし、いわゆる機種依存文字(「①ⅱ㍍髙彅德﨑」など。)を含む文字列を文字コード変換することは(文字コード変換のための有名なライブラリ・モジュールを含めて、対応していないことが多いために)簡単ではありません。機種依存文字を含む可能性のある文字列を文字コード変換するPerl/CGIプログラムの場合、弊社製品で難読化する前から文字化けが発生する原因になりえますが、「サーバサイドSHTML for Perl/CGI」のEUC-JP版を使えば、難読化の際に、機種依存文字を含まないASCII文字だけの文字列に変換します※3-1から、それをお客様のプログラム側で今までどおりShift_JISに変換されれば、機種依存文字の処理もうまくいきます。

(もちろん、お客様のプログラムにて、機種依存文字の変換処理をきっちりされている場合には、このような配慮は不要です。Shift_JIS版でもEUC-JP版でもどちらのバージョンをご注文されてもいいはずです。)

 「サーバサイドSHTML for Perl/CGI」では、ページタイトルやメタタグは難読化しません。ですから、ページタイトルやメタタグに機種依存文字が含まれている場合で、お客様のPerl/CGIプログラムにて機種依存文字の文字コード変換を適切になされていない場合には、やはり出力が一部文字化けするようになるかと思います。

なお、Advancedコースをご注文していただけますと、EUC-JP(CP51932+補助漢字)、Shift_JIS(CP932)、UTF-8の3種類に全て対応していますので、ご注文の段階でどの文字コードのバージョンを選択すべきかどうかについて悩んでいただく必要がありません。

4. Perl/CGIではなく、他の言語で同様なことができるのであれば注文したいのですが・・・。
サーバサイドSHTMLはPerl版の他にPHP版及び、ASP版(Classic ASP / ASP .NET) があります。また、随時JSP版についても納入実績があります。




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