Japan-Net ホーム サイトマップ
ジャパンネット サービス案内 サポート ビジネスソリューション サイト制作 サービス体制 会社情報 お問い合せ
カスタマーサポート

CGI/SSI


まず、CGIの行頭で perl のパス(場所の指定)を設定してください。
ジャパンネットで用意しているperlのバージョンは以下のふたつです。
■perlのバージョン
/usr/bin/perl v 5.8.8
/usr/local/bin/perl v 5.8.8

/usr/bin/perl と /usr/local/bin/perl は同じ物です。
スクリプトの先頭行に #!/usr/bin/perl または #!/usr/local/bin/perl と記入、または修正してください。
その他、指定項目がある場合は事前に設定しておいてください。
■perl のパス以外によくご質問のあるサーバー項目
sendmail の パス /usr/sbin/sendmail
nkf の パス /usr/local/bin/nkf
排他制御(ロック処理) ・flock ご利用になれます
・symlink ご利用になれます
・open ご利用になれます 

次に必要なファイルをサーバー(user.japan-net.ne.jp)にFTP等でアップロードします。
【重要】CGI本体はASCII形式(テキスト形式)で転送するようにしてください。
場所の指定は特にありませんので、public_htmlの中に適当なディレクトリ(フォルダ)を作ってその中に入れておくのがよいでしょう。

アップロードが終わったらファイルのパーミッション(属性)の設定(ディレクトリを作成した場合はそのディレクトリについても)を行なってください。
通常、CGIの実行ファイルは 705(rwx---r-x)または 700(rwx------)、データを書き込むファイルは 600(rw-------)等に設定します。
設定が間違っていると正しく動作しません。「Internal Server Error」となる場合は“CGIの文法が間違っている”“アップロードをバイナリ―で行なった”“パーミッションの設定が間違っている”などが原因と思われます。


ホームページサーバーセキュリティー

  1. ユーザーの所属グループ
    ホームページとして公開するデータ(*.htmlや*.jpegなど)は他人に対して読み出し可能でなければなりません。それそれ別々のグループIDを持っていると、ディレクトリを読み出せない権限にしておいても、パスを知っていると他人がシェル等で読み出せてしまいます。その為ユーザを同一グループにして、グループ権限を読み出し不可にすることにより他者が読み出せないようにしてあります。
    グループや、他人から読み出しを禁止しておいて、CGIやSSIから読み出すようにすれは、安全にCGIを運用できます。
  2. サーバーの動作環境
    ユーザー様のデータの安全を確保するために、CGIやSSIは、それぞれのユーザーの権限で実行するようになっております。
    参考書等では、CGI、SSI から書きこみをするデータファイルは、他人からの書込み権限を許可しておかないと、記述されている場合があります。
    ジャパンネットのサーバでは、CGI、SSIが、それぞれのユーザーの権限で動作いたしますので他人からの書込み権限が許可されていなくても書込みが可能です。読み出しも、他人からの読出し権限は必要ありません。
    逆に、他人 及び グループ の書込みが許可されていると、セキュリティー上問題となりますので、CGI、SSIの実行が、できなくなりました。
  3. ユーザー様のファイルやディレクトリー
    上記理由により、ユーザー様のファイルやディレクトリーの所有グループをすべての同一グループにして、グループ読出し、グループ書き込み、グループ実行、他人書き込みを不可にしてあります。
    しかし、ユーザー様が、アップロードされたファイルやディレクトリーの権限は、アップロードの際に権限が割り当てられます。
    たとえば、グループ書き込み許可の状態でCGIをアップロードされますとそのCGIは実行させることが出来ません。ご注意ください。



■判明しているCGI、SSiが動作しない原因と対処方法
  1. ファイルやディレクトリの権限(パーミッション)について
    他人からの書込み権限を禁止にしてください。
    CGIやSSIがユーザー様の権限で動作します。他人やグループが書き込みできるプログラムは実行させることが出来ません。
    • CGI,SSIの推奨パーミッション:(rwx------)700 または(r-x------)500
    • 動作するがお勧めしないパーミッション: (rwxr-----)740 や(rwx---r--)704 などの他人やグループの読出しが可能になっているもの
    • 動作しないパーミッション:(rwx-w----)720 や(rwx----w-)702 などの他人やグループの書き込みが可能になっているもの
    CGIやSSIが置かれているディレクトリーも、他人やグループからの書き込みが許可されているとCGIやSSIは実行できません HTML 等のファイルが置かれているディレクトリーには、他人からの実行を許可しておく必要があります(rwx-----x)701 HTML 等のサーバが直接読み出すファイルは、他人からの読出しを許可してください(rw----r--) 604 ディレクトリーの一覧をブラウザーに見せる場合(お勧めしません)や、index.htmlなど、URLをディレクトリー名まで指定すれば済むようにしている場合は、ディレクトリーを他人からの読出し許可にします(rwx---r-x)705
  2. SSI の "#exec cmd="で呼び出すプログラムの PATH に ".." が含まれているものや "/"で始まるものが使えなくなりました。
    ".."は、カレントディレクトリーがリンクされたディレクトリーの場合には、通常のディレクトリーとは別のディレクトリーを示すことになります。その為、".."を使うことは、サーバープログラムがセキュリティー上問題があると判断し、実行することができません。
    "#exec cgi="は、PATH が、Webサーバーが使用する論理PATHが適用されますので".."が含まれていたり"/"で始まっていても問題ありません。
  3. SSI の"#exec cmd="では、".." や "/" で始まるものが使えない為、システムのコマンドが直接呼び出せなくなりました。
    ユーザー様のディレクトリーにあるプログラムは、呼び出せます。
※2と3の解決方法は、
呼び出しをするホームページのあるディレクトリー以下のディレクトリーにシェルスクリプトを用意して、シェルスクリプトから目的のプログラムを呼び出すようにします。
"#exec cmd=" では、そのシェルスクリプトを指定するようにしておきます。




■以下に該当するCGIはユーザーに通知した上で使用を制限させていただくことがありますのでご了承ください。
  • サーバーの資源(CPU、メモリ等)を大量に消費し、サーバーの運営に支障をきたす恐れのあるもの
  • セキュリティ上問題のあると思われるもの
  • 他の方に迷惑・被害が及ぶと思われるもの
  • 公序良俗に反すると思われるもの
  • その他、ふさわしくないと思われるもの



■以下に該当するCGIは使用禁止といたします。
[wwwsrch.cgi Ver3.04以前]
とほほ さん 作成のフリーのホームページの内容を検索するCGIスクリプト
Ver3.04 以前のバージョンには不具合がありCPU負荷を100%使い切った状態でメモリーをどんどん食いつぶしサーバー上のリソースを使い切った後に異常終了することがあります。
Ver3.05 では不具合は解消されているようです。


<お願い>
CGIに関する技術的なこと(プログラムの組み方など)はサポートの対象外となりますので、インターネット上のCGIに関するホームページまたは書籍等を参考にしてください。

このページの上へ


カスタマーサポート

会員登録情報変更

契約内容変更

ディスク容量確認

オンラインマニュアル

よくある質問(FAQ)

アクセスポイント

ユーザー会


ご利用にあたって 個人情報取り扱いについて 株式会社インフォウェア Japan-Net ジャパンネット