No.5ベストアンサー
- 回答日時:
まだ御覧になっていないようですが、一応サンプルを記載しておきます。
#!/usr/local/bin/perl
$ENEMY='http://www.○○○.ne.jp/×××.html';
if($ENV{'HTTP_REFERER'} eq $ENEMY){
ErrorFunc();
exit(1);
}
print << "ENTRY";
Content-type: text/html
#この上の行は必ず空行にします。
#この部分に現在のエントリーページのHTMLを全て貼り付けます。
ENTRY
exit(0);
sub ErrorFunc(){
print<<"MESSAGE";
Content-type: text/html
<HTML>
<HEAD>
<TITLE>エラー</TITLE>
</HEAD>
<BODY>
<H1>現在メンテナンス中です</H1>
</BODY>
</HTML>
MESSAGE
}
尚、上記の「#」から始まる行はコメントですので、実際に作成される際は削除してください。
但し先頭行は除きます。
先頭行にはこのCGIを実行する為に必要なperlの在処が示されています。
上記の在処はあくまでサンプルですので、この部分はご使用の環境に合わせて書き換える必要があります。
一番簡単なのはチャットのCGIの先頭行を見てみる手です。
既に動いているプログラムですから間違いないと思います。
また、「$ENEMY」に設定するURLも今は架空のものですので、実際に対象となっているURLを記載して下さい。
ご不明の点があれば補足して下さい。
#尚、これはあくまでも該当URLに貼られたリンクから辿ってきた場合に有効になります。
#また、エラーメッセージはとりあえず当たり障りのないものとしました。
この回答への補足
ありがとうございます。
早速プログラムを実行したところ、パーミッションエラーが起きたそうです。
パーミッションの指定は特殊なものなのでしょうか?
ちなみに1行目のperlも合ってますし、jcode.plも入れたそうです。
念のため私も実行しましたところ、サバエラが起きます。
無知なものでもうしわけありません。
パーミッションの件を御教授願います。
No.14
- 回答日時:
>が、やっぱりサーバーエラーになります。
>友人も同様だそうです。
う~ん…、不思議ですね~。(^_^;
動いているものをコピーしただけなんですが…。(勿論相手のURL等書き換えた箇所はありますが)
とりあえずご友人のところで「perl -wc ○○○.cgi」を実行してもらって頂けませんか?
簡単にエラー箇所が判りますので。
メッセージの意味が不明なら、そのまま記載して頂ければ解読してみます。
よろしくお願いします。
>A__さん
了解です。(^_^)
また何かお気づきになりましたらご指摘お願いします。
直に見ることが出来ないので、何故動作しないのか正直想像が付かないのです。(こちらで動いているものをそのままコピーしただけに、尚…)
ありがとうございます!
動作しました!
原因ですが、おばかな話、私は改行をMacに、友人はDos形式にしたままUPしてました。Unixにしたらあっさり動作。
………馬鹿な間違いしててすみませんでした。
これで一部はなんとか排除できそうです。
もっとも直接飛び込んでくる分はどうしようもありませんが。
本当に御丁寧に皆さんありがとうございました。
深く感謝致します。
No.13
- 回答日時:
naturalさん、お返事ありがとうございます。
print<<"EOF"
という書式は最後に改行が必要だということから
実験もせずに書き込みしました。
正常に動いていたんですね。
お騒がせしました。
No.12
- 回答日時:
>A__さん
>↑の MESSAGE の次に空白行が必要だと思いました。
とりあえずそのままで動作していますが…。(^_^;
私が参照している書籍には記載がなかったのですが、環境によってはNGだとか言うと仕事上致命的なので、それに関する注意が書かれているサイトや書籍等がありましたら教えて頂ければ幸いです。
よろしくお願いします。
No.11
- 回答日時:
あんまり自身がない発言だけど、
No5 の naturalさんのサンプルソースの
終わりの方に空白行が抜けているような気がしました。
~
<H1>現在メンテナンス中です</H1>
</BODY>
</HTML>
MESSAGE
}
↑の MESSAGE の次に空白行が必要だと思いました。
No.10
- 回答日時:
>普通.cgiは「読む」と「検索実行」を全て、「書き込み」をオーナーのみをチェックだと思ったのですが。
度々言葉足らずですみません。(^_^;
既存のパーミッション状態に「検索/実行」権を追加してくださいと言う意味だったのです。(恐らく初期状態で644になっていると思ったもので…)
つまり755の状態であればOKです。
もう一度御確認の上、実行してみて下さい。
また不明点があれば補足して下さい。
この回答への補足
>既存のパーミッション状態に「検索/実行」権を追加してくださいと言う意味だったのです。(恐らく初期状態で644になっていると思ったもので…)
了解しました。
とりあえず、友人にチャレンジするように言ってあります。
また助力をあおぐかもしれませんがよろしくお願いします。
No.9
- 回答日時:
再度投稿します。
下で紹介したリンクブロッカーの43行目くらいに
# 特定のページ以外からのリンクアクセスは拒否したいが、URL直接入力やブックマー
# ク等のダイレクトアクセスは許可したい場合は、次の行の頭にあるシャープ"#"を外し
# て下さい。
との記述があります。これを使ってうまく設定できないものでしょうか?ふと思ったのですが、悪意をもった閲覧者がURL直接入力した場合は、いずれにせよ制限できないと思うのですが、どうなのでしょう?特定URLにチャットの入り口がリンクされてしまっているということですよね??その他勘違いしていましたら、読み流してください。
この回答への補足
すみません。見落としておりました。
<# 特定のページ以外からのリンクアクセスは拒否したいが、URL直接入力やブックマーク等のダイレクトアクセスは許可したい場合は、次の行の頭にあるシャープを外して下さい。
ちなみに設置してみましたが、度重なる嫌がらせの関係で友人は該当URLをあっちこっち移動させているみたいです。
で、ブックマークの人とウェブリングから回ってくる人に分かれているようです。
つまり『特定URL』”のみ”弾きたい部分でこなせないと言っておりました。
No.8
- 回答日時:
割り込み失礼します。
フリーのCGIで下記のようなものをみつけたので、参考にしてください。使ったことはないので、どこまで防げるかは不明です。
TOPページ>その他の中のアクセス制限>リンクブロッカー
http://www-power.net/
この回答への補足
ありがとうございます。
初めて配付でリンクブロッカーを見ました。
ですが、常連さんのほとんどが問題ページにブックマーク(直リンク)をしているらしいのです。
今、ダウンロードしてみましたところ、直リンクはすべて弾かれるとなっております。(苦笑)
となると、このCGIはちょっと今回の件では難があるようです。
No.7
- 回答日時:
>ところで、#HTMLを書く所 の部分ですが、#から続けてHTMLを<html>から</html>まで書いていいのですよ
すみません、言葉足らずでしたね。
「#」も削ってください。
恐らくサーバーエラーは消えるはずです。
Fetchでのパーミッション設定ですが、まずはサーバー側のファイル一覧が表示された状態で対象のファイルを選択します。
次に、[リモート]メニュー→[Permissionの設定...]を選択します。
設定ダイアログが表示されたら、各ユーザー(オーナー、グループ、全員)の「検索/実行」欄にチェックを入れます。
この状態で再度お試し下さい。
この回答への補足
?
普通.cgiは「読む」と「検索実行」を全て、「書き込み」をオーナーのみをチェックだと思ったのですが。
一応、アドバイス通りの設定をしてみました。(ちなみに今までは上記方法で行っていました)
が、やはりエラーになります。
>すみません、言葉足らずでしたね。
>「#」も削ってください。
言葉足らずだなんてとんでもない!
お手数かけます。
2つとも#は取って大丈夫ですよね?
本当にお手をわずらわせてしまってすみません。申し訳ないかぎりです。
No.6
- 回答日時:
>パーミッションの指定は特殊なものなのでしょうか?
いいえ、何ら特殊なものではありません。
ただ、転送しただけでは実行権が付きませんので、転送後telnet等でログインし、
chmod +x ○○○.cgi
のような感じで実行権を付加します。
またはチャットのCGIを組み込まれたときにも同様のことをなさっているはずですから、上記の通りでなくてもそのときと同じやり方で構いません。
もし実行権を付加しているのにエラーになると言うことでしたら補足して下さい。
それと、telnetで入れるのならば、スクリプトの置いてあるディレクトリに移動し、コマンドラインから「perl -wc ○○○.cgi」を実行してみて下さい。
スクリプトに記述ミスがあればその行数とエラーが表示されます。
掲載したスクリプトは実行確認済みですが、一応念のためということで…。
この回答への補足
友人はtelnetで設置しているようですが、私はFTPソフトでパーミッションの設定を行いながら実行権を不可しております。
(私もチャット設置してますが、サーバーがtelnet禁止のところなので、MacのFetchを使っております)
友人と今、連絡が取れないため、友人の方で出るエラーがどんなものか分かりませんが、私の場合は純粋(?)にサーバーエラーです。
どこかの記載が間違ってるかもしれません。
ところで、#HTMLを書く所 の部分ですが、#から続けてHTMLを<html>から</html>まで書いていいのですよね?
一応、改行もしてみたのですが…。
………サバエラになる原因といえばそれくらいしか見当たらないので………。
私が設置できれば、パーミッションがどうのと言っている友人には伝言はできますので。
本当にお手数ですがよろしくお願い致します。
すみません。補足で実行権を不可と書いておりますが、「付加」しています、の間違いです。
まるきり正反対ですね。まぎらわしくてごめんなさい。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- その他(クラウドサービス・オンラインストレージ) このような条件でデータを置いておけるサービス 3 2022/07/25 08:31
- 法学 不正アクセス禁止法の扱いについて 4 2022/03/23 18:13
- Excel(エクセル) Excelで、社外秘(閲覧のみ)と表示され、共有者が編集出来ないのですが 4 2023/06/20 17:54
- その他(暮らし・生活・行事) → ※このメールは、ファミマTカードをファミペイに登録されたことがある会員様にお送りしております。す 4 2023/05/03 12:24
- その他(IT・Webサービス) ホームページにカウント数を表示する 2 2022/10/28 10:37
- YouTube YouTubeの設定について詳しい方教えてください。 1 2022/10/08 06:32
- セキュリティホール・脆弱性 テレワークで会社支給パソコン以外でVPN接続を制限するやり方 教えて下さい 3 2022/08/31 12:40
- その他(ネットショッピング・通販・ECサイト) URLの有効期限について 1 2022/09/10 16:41
- サーバー WIN10のファイル又はフォルダを社内LAN上HDDで共有する場合、特定の人だけが見えるようにしたい 3 2023/04/18 00:32
- Access(アクセス) スキルシートのエクセルの項目に 2 2023/04/04 22:41
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
ApacheでのCGIについての質問
-
EXCELファイルに誰がアクセスし...
-
《エクセルVBA》「他の人が該当...
-
ASPでDLLの使用方法
-
ASPから既存のexcelブックを開...
-
XサーバーでCGIを使うには??
-
WIn32API ディレクトリ内ファイ...
-
実行属性って?
-
古ーくからフリーのtree.cgi掲...
-
.htaccessを2つ以上設置した場合
-
VBAでサーバーにアクセスするに...
-
CGIが壊れるて?
-
contenttypeについて
-
.cgi拡張子のままCGIファイルを...
-
Perl 別ドメインのファイル存在...
-
CGIって何ですか?簡潔に教えて...
-
cgiファイルを直接は見れなくす...
-
パーミッションの変更ができない
-
CGIでソースがそのままでてしま...
-
perl 矢印演算子 -> の使い方
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
ApacheでのCGIについての質問
-
HTTP 501未実装 エラーについて
-
apacheで動作してIISで動作しな...
-
cgiにアクセスしても画面が真っ白
-
jcode.pl と &ReadParse()
-
特定URLから
-
ブラウザのURLをコピーし.cgiフ...
-
CGIがうまくアップできない(50...
-
cgi-lib.plのShort read~とい...
-
perlのcgiで-wTを記述するとエ...
-
CGIの設置ができない
-
perl cgiの局所変数について
-
テキストカウンターができない...
-
ローカルでのCGIについて
-
xamppを使用してCGIが実行でき...
-
CGIをwebに設置した後の5...
-
突然CGIで作っていた掲示板が利...
-
CGIエラー
-
Script Errorがでます。(過去...
-
CGI設置方法
おすすめ情報