- ベストアンサー
z.htmlが呼ばれる度にz.plを実行するため
z.htmlを <html> <img src="http://xxx.com/z.pl width="0" height="0"/> Hello World. </html> としたのですがこれだとソース表示で http://xxx.com/z.pl が見えてしまいz.plの存在を知りを他人が自身のページにz.plのリンクを貼るとう悪さをされかねません z.htmlが呼ばれたときにz.plを実行する方法について http://xxx.com/z.pl を見えないようにする方法は無いでしょうか?
- みんなの回答 (4)
- 専門家の回答
質問者が選んだベストアンサー
HTML的に隠蔽する事は難しいと言うか、無理でしょう。ソースをブラウザに渡す事で表示しているわけで、ソースを隠してしまったら表示も出来ないわけです。 もしもサーバでSSIが使えるのであれば、SSIとしてプログラムを実行する事で隠蔽する事は出来ます。多分、この(サイズを0にする)書き方だと、画像を表示する事が目的ではないと思いますから、z.plの出力を適当に調整して、<!--#exec cgi=''-->等を用いて起動すれば、その出力が埋め込まれる形でソースが生成されます。(z.plでprint 'Hello World.';とかを行なうように変更してexecで呼べば、出力ソースはexecのかわりにHello Worldになります。)SSIはサーバ内でしか使えないので、サーバが違えばページに埋め込まれてしまう心配もありません。 HTMLとプログラムだけで解決したい場合は、現実的にはプログラム側でREFERERをチェックする程度の事しかなさそうです。(JavaScript等だと、より一層信頼が置けません。)
その他の回答 (3)
- steel_gray
- ベストアンサー率66% (1052/1578)
niftyだとSSIもhtaccessも使えないので厳しいですね。 ・カウンタとして数値画像を表示する必要がある。 →不便かつ確実性がないのを承知でリファラのチェックをする。(リファラを偽装してしまえばそれまでなのでお勧めできないです。) ・カウンタとして数値画像を表示する必要がない。 →そのCGIがアクセスログのCGIとわからないようにする・・・サイトタイトルのようなどこのサイトにもありがちな画像を返すようにするとか。 # width=0 height=0の画像とか不自然な記述はたいていアクセスログ採ってるなってわかるので意味ないかも。 あとは、意外な部分でリンクドスタイルシートとしてCGIを実行するとか。 アクセスログに対するイタズラなんてその結果はログを気にして見ている管理人にしかわからないのでつまらないし、たかだか数値が正確でなくなるだけだし・・・気にしすぎだと思います。 不安定で元々正確なログが取れないならなおさら気に病む必要はないかと。
お礼
ありがとうございます やっぱりSSIは使えませんか とりあえずレファラを入れました 今回はたいしたことの無いアクセスログですがCGIを使っていると同じような問題にぶつかってしまいそうなので今後のためどうなっているか聞いてみました
- Aruku-20030515
- ベストアンサー率23% (362/1544)
いっそ Z.Htmlをパールから呼ばせればいいのでは?
お礼
ありがとうございます 使っているプロバイダの場合Perlの実行が不安定で 時々見つかりませんというメッセージが出るのです アクセスログの場合は休んでもいいのですが ページまで表示しない頻度が上がると大変です しかしその方法しかなさそうですね
補足
指摘の意味を誤解しているかもしれません Perlでz.htmlを読み取ってそれをプリント命令で出力すると言う意味でよいのでしょうか?
- LancerVII
- ベストアンサー率51% (1060/2054)
SSIを利用して呼ばない限りはソースになんらかの パスは出てしまうと思います。 pl側で、自サーバ内、もしくは指定のhtmlファイル から呼ばれた場合にのみ実行するようにする方法が いいと思います。
補足
ありがとうございます 提案の方法を実現するために環境変数レファを使ったのですがこれが当てにならないようで困っています 環境変数レファ以外で参照しているページを知る方法は無いでしょうか?
補足
ありがとうございます 多分SSIは使えないと思いますがNiftyに明日聞いて見ます