配布されたコードを見ているのですが、意味がわからないので
教えて下さい。
$referer_url[0] = 'http:\/\/localhost\/'; と宣言してあり、
そもそもlocalhostの意味もわかりません。
##=====================================
## リンク元チェック処理 =
##=====================================
if($REFERER_seigen == 1){
&ref_chk;
if ( $refchk==1 ){ #一致しなければ終了
print "エラー403";
exit;
}
}
という処理で、ref_chk関数を呼んでおりその中身が
##=====================================
sub ref_chk{
$refchk = 1; #フラグの初期化(一致しない) = エラー403となる
foreach $url_temp(@referer_url){
if ( $ENV{'HTTP_REFERER'} =~ /^$url_temp/){
$refchk = 0; #前方が一致したのがあったらそのホストからだからOK
}
}
return $refchk;
}
とあります。前方が一致とはどういう意味でしょうか。
No.2ベストアンサー
- 回答日時:
localhost自体の意味は#1さんの書かれたとおり
$referer_url[0] = 'http:\/\/localhost\/';
と有りますのでホスト名の候補として 配列 @referer_url の1番目の要素にlocalhostがあり
おそらく$referer_url[1] や $referer_url[2] などに別のホスト名が入っているのではないかと?
(例 LAN内からはlocalhost で
ドメイン名としてwww.example.com と
test.example.net と言う別名がある場合
$referer_url[0] にlocalhost $referer_url[1]にwww.example.com $referer_url[2]に test.example.net
)
**しかし localhost がOKとなると 他の人が自分のPC/サーバー上に置いた
ページからのリンクもOKとなっちゃいますけどね。
もっとも、多少知識のある人なら 簡単にHTTP_REFERERの偽装が出来るので
あんまり難しく考えても意味は有りませんが、、、
No.1
- 回答日時:
文字列Aが文字列Bに前方一致するとは、文字列Bが文字列Aで始まるということです。
A='http://www.example.com/'
B='http://www.example.com/foo/bar/index.html'
という文字列である場合、AはBに前方一致しているといいます。
localhostは、そのプログラムが動いている(ネットワークレベルでの)コンピュータ自身を表します。
http://d.hatena.ne.jp/keyword/localhost
回答どうもありがとうございます。
前方一致している意味はあわかりました。
しかし、前方が一致したのがあったらそのホストからだからという
のが判りません。
また、localhostは、そのプログラムが動いている(ネットワーク
レベルでの)コンピュータ自身というのは、127.0.0.1 という
ような意味なのでしょうか。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・街中で見かけて「グッときた人」の思い出
- ・「一気に最後まで読んだ」本、教えて下さい!
- ・幼稚園時代「何組」でしたか?
- ・激凹みから立ち直る方法
- ・1つだけ過去を変えられるとしたら?
- ・【あるあるbot連動企画】あるあるbotに投稿したけど採用されなかったあるある募集
- ・【あるあるbot連動企画】フォロワー20万人のアカウントであなたのあるあるを披露してみませんか?
- ・映画のエンドロール観る派?観ない派?
- ・海外旅行から帰ってきたら、まず何を食べる?
- ・誕生日にもらった意外なもの
- ・天使と悪魔選手権
- ・ちょっと先の未来クイズ第2問
- ・【大喜利】【投稿~9/7】 ロボットの住む世界で流行ってる罰ゲームとは?
- ・推しミネラルウォーターはありますか?
- ・都道府県穴埋めゲーム
- ・この人頭いいなと思ったエピソード
- ・準・究極の選択
- ・ゆるやかでぃべーと タイムマシンを破壊すべきか。
- ・歩いた自慢大会
- ・許せない心理テスト
- ・字面がカッコいい英単語
- ・これ何て呼びますか Part2
- ・人生で一番思い出に残ってる靴
- ・ゆるやかでぃべーと すべての高校生はアルバイトをするべきだ。
- ・初めて自分の家と他人の家が違う、と意識した時
- ・単二電池
- ・チョコミントアイス
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Malformed UTF-8 character
-
Perlで Right関数に近い処理を...
-
文字列と数字を含むセルから数...
-
Perlの正規表現でマッチする範...
-
CSVファイルの中で、「 , 」カ...
-
英数字のみ全角から半角に変換
-
EXCELからCSVにすると余計なカ...
-
Accessで日付や数値を全角で表...
-
カンマ区切りの数字をCSVフ...
-
エクセルで数値を全角文字(カ...
-
「何とかで始まり、何とかで終...
-
VBA 置換文字がみつからない時
-
住宅にカナを入力する際に丁目...
-
コマンドプロンプト 全角を含ん...
-
UWSC教えて
-
エクセルでの”々”の扱い
-
VBA 文字に半角が含まれて...
-
SQLのデータで半角カナを全角に...
-
スペースで区切られた氏名から...
-
マクロ超初心者です。
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Malformed UTF-8 character
-
Perlで Right関数に近い処理を...
-
文字列と数字を含むセルから数...
-
[Perl] Pack関数について教えて...
-
GDBでデバッグするとき文字列の...
-
日本語文字列の指定長(byte)切出し
-
パイソンエラーについて
-
VBA like演算子について
-
トリッププログラム!?
-
splitの逆の処理
-
Perl(Windows)の文法について
-
メールヘッダのMIMEエンコード...
-
特定の文字列をHTMLタグに変換...
-
ASP.NETでエンコードの判定
-
perlで文字列を短く(圧縮)し...
-
正規表現での文字の抜き出し
-
cryptの使用方法
-
perlでのURL判定
-
VBS:文字列を元に外部リストか...
-
カートの送料設定を2個まで1個...
おすすめ情報