• 締切済み

ssiのexecコマンドの代替は「<img src=~」でOK?

近日中にサーバの移転を考えております。 現在使用しているサーバは、SSIのEXECコマンドをが使用可能なので、htmlページ中に埋め込んで使用しています。 ですが、移転を考えているサーバはセキュリティーの問題からEXECを使用禁止にしています。 いろいろと調べてみると、「<img src=~」で代替可能なような記載をみたのですが、基本的に問題はないですか? ◆ <!--#exec cmd="~" --> ◆ <!--#exec cgi="~" --> 例えば<!--#exec cgi="./abs/hoge.cgi" -->を<img src="./abs/hoge.cgi">としても問題ないでしょうか? 一応、imgタグを使用した方法でもテストしてみましたが、動作していたように思います。 今後execの使用をする、CGIやPHPプログラムをサイトに取り入れる場合は、SSIのexecコマンドを使用せずに、imgタグで代用ができるようであれば、新サーバへの移転を使用と思っています。 専門の方からみて、execコマンドが使用できないサーバは、今後の事を考えると控えた方が良いでしょうか? execコマンドの代用として、別のコマンドがあるのであれば、お教え下さい。 execコマンド利用可能なサーバから、利用不可のサーバへと移転を検討しているため、アドバイスを頂けると助かります。 よろしく御願いします。

  • PHP
  • 回答数3
  • ありがとう数0

みんなの回答

回答No.3

当然ながら、イメージタグは誰からもアクセス出来るでしょうから、セキュリティ上、cgiの方に厳しくアクセス制限をかけておく必要があると思います。

  • php504
  • ベストアンサー率42% (926/2160)
回答No.2

何もブラウザに出力をしないCGIなら<img>で呼び出しても動作すると思います。 SSIは使えるけどEXECが使えないということなら <!--#include virtual="/url/path/hoge.cgi"--> はどうでしょうか。 個人的にはPHPが使えればSSIは必要ないと思います。

回答No.1

動作可能であってもサーバ側で禁止しているのであれば使用したために規約違反でアカウントを停止されても文句は言えないと思います。

関連するQ&A

  • <img src=

    アクセスカウンタなどで<img src="cgi-bin/●●●.cgi......">で来客者数を表示できるCGIがありますが、あのように、例えば<img src="cgi-bin/●●●.cgi" width="xx" height="yy">で表示できるCGIとタグを入れるとそのCGIに買い込んで書き込んであるURLのページを500×400の範囲内に表示できるCGIはないでしょうか? <img src="cgi-bin/●●●.cgi?url=http://www.nantoka.or.jp/tobisaki.html">といった使い方のものでもかまいません。 感覚としては、1つのHTMLページにiframeでインラインフレームを入れるのと同じ考え方なのですが、iframeタグが使えないところに、ある別ページを挿入したいのです。 100ページ以上ある商品ページに同じ内容のテーブルを入れ、テーブルの内容を更新するたびに100ページ全部書き換えるのが大変なので、何とかしたいのです。 インラインで表示できれば、1つのHTML書類を書き換えれば100ページ全部が更新されることになりますから。 その商品ページはショッピングモール内のフォームで書き込むものなので、勝手にフレームで切ったりスタイルシートを使ったりできないので、IMGタグで対応するしかありません。 お心当たりのある方はいらっしゃらないでしょうか?

    • ベストアンサー
    • CGI
  • PerlでHTMLを読み込み記述されたSSIコマンド(exec)の実行を実現するには。

    HTMLファイルを読み込んで表示するCGIを作っています。 それで、そのHTMLファイルに記述されたSSIコマンドを、 そのCGIで認識して、それを実行する。ということを実現したいと思っています。 includeコマンドは簡単に実現ができたのですが、 execコマンドが完全には実現できません・・・。 一応、openのパイプを使って、 <!--#exec cmd="test.cgi" --> のようなコマンドを認識しそれを実行して返すことはできました。 しかし、test.cgi?a=wのように パラメータをつけての実行が実現できません。 もちろん、SSIと同じように、 execコマンドで実行する先のCGI、プログラムなどを 改変することなくそのまま実行できることが条件です。 (例えば、$ENV{'QUERY_STRING'}ではなくARGVを使うようにするのではダメなんです) お知恵をお貸しいただけると幸いです。 どうかよろしく御願いいたします。

    • ベストアンサー
    • Perl
  • srcに「banner.」で始まるファイルを指定しているimgタグが消える

    急に謎の症状が発生して困っています。 何か知っている方がいたらご教示お願いします。 謎の症状が起きるスクリプトの例------------------------ echo '<div>'; echo '<a href="hoge1"><img src="img/banner.jpg"></a>'; echo '<a href="hoge2"><img src="img/banner2.gif"></a>'; echo '<a href="hoge3"><img src="banner.gif"></a>'; echo '<a href="hoge4"><img src="banner.png"></a>'; echo '<a href="hoge5"><img src="hogehoge.gif"></a>'; echo '</div>'; ------------------------------------------------------ 上記のようなスクリプトを実行した場合に、3行目の「img/banner2.gif」と6行目の「hogehoge.gif」を指定しているimgタグしか表示されません。 残りはimgタグの部分だけ綺麗さっぱりに消えてaタグの部分だけ表示されます。実行結果が下記のようになるのです。(実際には改行されませんが、見やすいように改行してます。) 実行結果--------------------------------------- <div> <a href="hoge1"></a> <a href="hoge2"><img src="img/banner2.gif"></a> <a href="hoge3"></a> <a href="hoge4"></a> <a href="hoge5"><img src="hogehoge.gif"></a> </div> ----------------------------------------------- banner.gifやimg/banner.gifは表示されるファイルと同じディレクトリの中に存在しています。 昨日ちゃんと表示されていたのを確認しました。そのときからサーバーの設定は変更していないので、何が原因なのかが分かりません。 過去に同じような症状が起こった方はいないでしょうか? PHPのエラーログを見てもエラーも警告もありませんでした。 【環境】 OS: CentOS/5 HTTPD: Apache/2.2.3 PHP: PHP/5.1.6(eAccelarator、ZendOptimizerが入ってます) ちなみに「banner」だけだとOKでした。「banner.」が付くとダメみたいです。 よろしくお願いします。

    • ベストアンサー
    • PHP
  • SSI で #exec 以外で Perl-CGI を実行する方法は?

    最近 CGI に興味をもち Perl を始めました。 簡単なサンプルを無料サーバーにアップロードして cgi だけを 直接実行すると問題なく実行されます。 ですが SSI の #exec を使って HTML ソースに <!--#exec cgi="/cgi-bin/sample.cgi" --> と記述してページを開くと [an error occurred while processing this directive] と表示されてエラーになりました。 無料サーバーは infoseek で CGI/SSI は使えると書かれていたので 試してみました。それでもう一度確認の為に読んで見ると『#exec』は セキュリティ強化のため利用できないことが判明しました。 http://help.www.infoseek.co.jp/isweb/20602.html#7 質問内容: (1)CGI/SSI は使えるが #exec は使えない状況でどうやって Perl-CGI を   HTML ソースに記述して実行すればよいのか? (2)CGI は cgi-bin に置きパーミッションを 755 に設定しています。   設定は infoseek さんの指示通りです。他に設定すべき点ありますか? (3)Perl-CGI の1行目ではちゃんと『#!/usr/local/bin/perl』と記述しています。   こちらも infoseek さんの指示通りです。   Perl の記述で何か気をつけるべき点はありますか?バグ以外で。 (4)HTML ソースの拡張子は shtml にしています。   SSI を使うにはサーバーが対応していれば拡張子を変えるだけで使えるのですか? 今回の質問は Perl-CGI を HTML ソースに記述して実行する?には どうすべきかをお聞きしたいです。infoseek さんの情報は次のリンクです。 http://help.www.infoseek.co.jp/isweb/20601.html またネット検索していたら次のページを発見しました。 http://cocohome.hp.infoseek.co.jp/ssi/ ここの人は私と同じ infoseek で SSI 入門を書いています。 なぜこの方は SSI の #exec が使えるのでしょうか? この辺も知りたいです。 分かる方お願いします。 教えて下さい。

    • ベストアンサー
    • CGI
  • HTMLからimgのsrcのみを正規表現で抽出する

    Webサイトから画像だけをダウンロードするツールをJavaの勉強がてら作成しており、HTML内に含まれた全てのimgタグのsrc部分のみを抽出したいと考えています。 現在、正規表現を使ってHTMLからimgタグのsrcを抽出し、srcの一覧を取得するようなメソッドを作成していますが、私の実力が及ばないばかりに上手く出来ずに困っております。 以下のようなHTMLが有った場合の例を挙げます。 <html> <body> <img src="hoge.jpeg"> <img src="./hoge.jpeg"> <img src="./fuga/hoge.jpeg"> <img src="../fuga/hoge.jpeg"> <img src="http://fuga/hoge.jpeg"> </body> </html> 上記のHTMLがString型に格納されてますので、 作成した抽出用メソッドの引数に渡すと以下のようなString[]型の文字列を返す想定をしています。 [0]=hoge.jpeg [1]=./hoge.jpeg [2]=./fuga/hoge.jpeg [3]=../fuga/hoge.jpeg [4]=http://fuga/hoge.jpeg しかしながら現在、以下のような結果となり、最後の1件しか取得できていない状況です。 [0]=http://fuga/hoge.jpeg 恐らく正規表現が正しくないせいだとは思いますが、どのようにすれば取得できるのか分からず困っています。 もしこの問題についての解決策をご存じの方がおりましたら、ご教示いただけましたら幸いです。 よろしくお願いします 以下、作成中のテストソースです。 //---------------------------------------------------- import java.util.ArrayList; import java.util.List; import java.util.regex.Matcher; import java.util.regex.Pattern; public class Main { public static void main(String[] args) { String testHtml = "<html><body><img src=\"hoge.jpeg\"><img src=\"./hoge.jpeg\"><img src=\"./fuga/hoge.jpeg\"><img src=\"../fuga/hoge.jpeg\"><img src=\"http://fuga/hoge.jpeg\"></body></html>"; String[] res = extractImgSrc(testHtml); // 結果表示 for (int i = 0; i < res.length; i++) { System.out.println("res[" + i + "]=" + res[i]); } } // imgタグのsrcからurlを抽出 public static String[] extractImgSrc(String html) { List<String> result = new ArrayList<String>(); Pattern p = Pattern.compile("<\\s*img.*src\\s*=\\s*([\\\"'])?([^ \\\"']*)[^>]*>"); Matcher m = p.matcher(html); while (m.find()) { result.add(m.group(2)); } return result.toArray(new String[result.size()]); } }

    • ベストアンサー
    • Java
  • execコマンドについて

    おはようございます。 現在、execコマンドを使用して以下の ディレクトリのコピーを行おうとしておりますが 実際に実行してみたらところコピーされていませんでした。 何か問題があるのでしょうか? exec("cp-r c:\AAA\BBB\ c:\AAA\BBB2");

    • ベストアンサー
    • PHP
  • <img src=** border=0>の一括指定

    ファイルの中に、<img src=** border=0>のタグが複数あり、 少しでも、ページを軽くしたいので、 cssなどを使用して、border=0というのを一括指定することは可能でしょうか? わかる方が居りましたら、ぜひ、教えて下さい。 それでは、宜しくお願いします。

    • ベストアンサー
    • HTML
  • リファラを取得するためのCGI

    アクセスログを取るためのcgiをPerlで作っています。 例えば、 hogehoge.html というページのアクセスログを取るためにlog.cgiというスクリプトを用意します。 hogehoge.htmlからは、IMGタグを使用して、<IMG src="log.cgi">のようにcgiを呼び出しています。 log.cgiからは、ダミーのgifファイルを返します。 ここで、log.cgiでは訪問者のリファラを取得して記録するようにしていますが、この仕組みだとhogehoge.htmlがリファラとして記録されてしまいます。(hogehoge.htmlが呼び出したのだから、当然ですね) hogehoge.htmlへアクセスしたブラウザが持ってたリファラを取得するには、どのようにすればよいでしょうか? 今回はIMGタグでcgiを呼び出していますが、特に手段は選びません。 ちなみに、使用しているサーバーではSSIは使えません。

    • ベストアンサー
    • CGI
  • Apach2でSSIコマンドが実行出来ないのですが教えてください

    環境は、自宅サーバ、WindouwsXP、Apache/2.0.53 (Win32) PHP/4.3.10 mod_jk2/2.0.2です。 [httpd.conf SSI関連設定] AddType application/x-server-parsed .shtml AddHandler server-parsed .shtml AddHandler cgi-script .cgi .pl .bat [SHTMLファイル] <HTML><HEAD><TITLE>counttest</TITLE></HEAD><BODY> あなたは<!--#exec cmd="countlog/count.pl" -->人目のお客様です。 </BODY></HTML> [count.plファイル] #!c:/perl/bin/perl $file="C:/ProgramFiles/Apachegroup/Apache2/htdocs /nandemokan/countlog/numfile"; open(FILE, "<$file"); #人数ファイルを読んで 以下省略 http://localhost/nandemokan/index.shtml [SHTML実行結果] あなたは人目のお客様です。 http://localhost/nandemokan/countlog/count.pl [直接SSIを指定した結果] Internal Server Error なお、コマンドプロンプトからcount.plを実行すると 正常にカウンタが出力されます。 ANHTTPDではうまくいったのですが、Apache2で出来なくて困っています。よろしくお願いします。

    • ベストアンサー
    • CGI
  • アクセスカウンタがうまく動作しない。

    自作cgiでアクセスカウンタを作成しました。 作成当初はcgi呼び出しとしてSSIの<!--#include virtual="~counter.cgi" -->を使用してそのときは何の問題もなかったのですが、サーバーの都合でSSIをとりやめて<IMG>タグを使用せざるを得なくなってしまいました。 やむを得なくHTML側のSSIの部分をそのまま<IMG="~">に書き直したのですが、これがうまく動きません。 具体的にいいますと、カウンタの値はページには反映させたくないので透過gifをよみこませることにして、HTML内のカウンタの<IMG>タグは一つだけにしてあります。その結果が、訪問一回めとブラウザの更新をしたときだけにしかカウンタが動きません。ブラウザのキャッシュに関係しているのかもしれないと思い、<meta>タグにキャッシュしないように入れてみたのですが、結果が変わりません。 動作環境はwin98 IE5.5とmac9.2 IE5.2で確認しています。 おわかりの方ご教授よろしくお願いします。

    • 締切済み
    • CGI

専門家に質問してみよう