配布されたコードを見ているのですが、意味がわからないので
教えて下さい。
$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で質問しましょう!
似たような質問が見つかりました
- C言語・C++・C# C言語 leetcode21 Merge Two Sorted Lists 2 2022/04/24 19:35
- Visual Basic(VBA) 【Excel VBA】自動メール送信の機能追加 5 2022/09/29 12:53
- Perl Perlのエラーについてご教授ください。初心者です。 CGIを別サーバに移したところ、Perlのバー 5 2023/05/31 10:48
- Visual Basic(VBA) Excel-VBAでのファイルの開き方 4 2023/02/14 11:01
- Visual Basic(VBA) VBAのユーザーフォームのテキストボックスに入力制限をしたい 6 2022/11/15 08:28
- PowerPoint(パワーポイント) エクセルのマクロについて教えてください。 1 2022/03/25 17:03
- PHP if(preg_match("/[^0-9]/",$gu_d)){意味を教えてください。 1 2022/05/06 05:37
- Visual Basic(VBA) エクセルのマクロについて教えてください。 3 2023/02/22 08:53
- C言語・C++・C# C 言語の Gauss Jordan 法について 2 2022/12/28 11:16
- C言語・C++・C# c言語 int temp = 0; if(isdigit(arr[i])){ temp=arr[i] 2 2022/03/27 01:44
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
GDBでデバッグするとき文字列の...
-
CSVファイルの中で、「 , 」カ...
-
英数字のみ全角から半角に変換
-
エクセルで数値を全角文字(カ...
-
EXCELからCSVにすると余計なカ...
-
VBA 文字に半角が含まれて...
-
IEからEdgeへの移行に伴うIMEの...
-
xmlファイル内の文字列置換
-
Excel VBAでPDFファイルをMicro...
-
マクロを使ってフォルダー内に...
-
VB.net、テキストボックス入力...
-
F9キーについて。
-
エクセルにMicrosoft Barcode C...
-
CSVの定義
-
プログラミングでは、半角括弧...
-
PHP カンマをエスケープしたい...
-
VB2005のTextBoxでカン...
-
CString から LPCTSTRの型に変換
-
正規表現 URL抽出「 [\\/\\b]{0...
-
「カンマ」と「コンマ」は同じ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Malformed UTF-8 character
-
Perlで Right関数に近い処理を...
-
splitの逆の処理
-
パイソンエラーについて
-
日本語文字列の指定長(byte)切出し
-
特定の文字列をHTMLタグに変換...
-
完全一致のデータだけを検索で...
-
何度も出現する文字列AAのうち...
-
VBA split(文字列, ★) ★←複数...
-
数字を文字列に変換し短縮化する
-
プログラミング HSPの変数につ...
-
perlで文字列を短く(圧縮)し...
-
特定文字列の抽出
-
ファイルから文字列を読み出し...
-
カートの送料設定を2個まで1個...
-
外部ファイルに「漢字(かんじ...
-
正規表現での文字の抜き出し
-
リストデータの検索でのエラー...
-
メールヘッダのMIMEエンコード...
-
Perlの文字列置換について
おすすめ情報