- ベストアンサー
perlの環境変数 ENV{'REMOTE_ADDR'} について
ショッピングカートのCGIにおいて ENV{'REMOTE_ADDR'} IPアドレスを取得すると思うのですが・・・。 何が原因なのかわかりませんが、違うIPアドレスのユーザー同士が、同じIPアドレスを取得したことになり、ショッピングカートの中が重複してしまいます 具体的に、お買物途中で注文したものを削除しないで注文をやめたお客様と同じIPアドレスのもつ他のお客様が買い物かごボタンを押すことにより、 後者のお客様が、ボタンを押していない商品もショッピングカートに入ってしまい・・・。 クレームが入ってしまいます 私ですが、perlに関して素人です。ですが、フリーのCGIを少し加工して使っております。 そこで、質問なのですが、ウイルスバスター等のセキュリティーソフトをインストールしていると、アクセス時に偽装のIPアドレスをログに残す可能性などあるのでしょうか? 勝手な解釈なのですが・・・。 それ以外に、IPアドレスが重複してしまう可能性が自分の知識の範囲内では、思いつきません。 素人的な考えかもしれませんが、ご教授お願い致します
- みんなの回答 (5)
- 専門家の回答
質問者が選んだベストアンサー
>ショッピングカートにもIPアドレス認識タイプとCookie利用のタイプがあると思うのですが・・。 調べてみたらあるようですが http://www.hal9800.com/home/cgi.html IPアドレスによりきちんとした識別が出来ないため 弊害が起こりうることが明記されています。 >ユーザー自身がクッキーをOFFにしている場合、CGIが使えなくなってしまう ・サイトにクッキーを有効にしてくださいと記述する ・toppageでクッキーを発行し、買い物ページで、そのクッキーを保持しているかどうか判断して 保持していない場合「クッキーが有効でない場合買い物できません」と強調表示する ・クッキー以外の方法ではIDを発行して、QUERYなどでIDを保持させる >私自身がアクセスしたい際にも、実際のIPアドレスではなく、架空のIPアドレスを2種類、、 これは良くわかりませんがENV{'REMOTE_ADDR'} だけでなく $ENV{'SERVER_ADDR'} や他の環境変数も記録していませんか? http://oshiete1.goo.ne.jp/kotaeru.php3?q=2048321 の#2に書いた 環境変数一覧CGIを設置してアクセスしてみて確認してみてはいかがでしょうか?
その他の回答 (4)
プロクシ経由じゃないでしょうか? 特に匿名プロクシはだいたい一晩で消えてしまいますから、後から調べても存在しないことになります。 プロクシ以外にもネットカフェやケーブルテレビ(192.n.n.n)からの接続は同じIPアドレスになることは多いですね。 (IPアドレスだけで同じ人かどうかの判断はできません)
補足
アドバイスありがとうございます プロクシ経由の意味もわからず、調べさせていただきました。とても勉強になりました。 少しわからないことがありまして・・。 なぜ、私自身がアクセスしたい際にも、実際のIPアドレスではなく、架空のIPアドレスを2種類、ログとして残してしまうのか? 5つのサイトのうち、うまく 2サイト 3サイト とうまくIPアドレスを分けております。そのサイト何度、アクセスしても同じIPアドレスのログを残していきます。 このことが理解できないのですが・・・? perlの記述が悪いのでしょうか? お手数をお掛けしますが、アドバイスお願いします
- umasikajiro
- ベストアンサー率67% (545/803)
そもそも識別にREMOTE_ADDRを使うこと自体が間違いです。 Cookieなどを用いるべきです。 常に固定されたグローバルIPアドレスでアクセスする人は ほんの一握りです ほとんどの会社、学校、CATV、プロクシ経由からアクセスする場合には 個々にグローバルIPアドレスが割り当てられませんし その他の、通常のISP経由でグローバルIPアドレスが割り当てられていても、 使いまわしになりますので個々の識別には使えません
お礼
アドバイスありがとうございます。 ショッピングカートにもIPアドレス認識タイプとCookie利用のタイプがあると思うのですが・・。 IPアドレス認識場合、社内ネットワークなどの場合、障害が生じる問題点があり・・。 クッキー利用の場合は、セキュリティー強化のために、ユーザー自身がクッキーをOFFにしている場合、CGIが使えなくなってしまう とのことで、困ってしまいます アドバイスありがとうございました
- a-saitoh
- ベストアンサー率30% (524/1722)
WEBサーバでウィルスバスターを動かしているのでしょうか? だとしたら、WEBサーバの通信にもウィルスバスターがプロキシとして強制介入しているのカモ知れません(そういう機能が本当にあるのか知らないが)。 まずそのREMOTE_ADDRを見てください。 192.168..とか127.・・・・とかになっているでしょうか?
補足
WEBサーバでは、ウイルスバスターは、動かしていません。レンタルサーバーなので、独自のチェックを導入しているみたいなのですが・・・。 IPアドレスですが、その現象が起こる際、perl関数で取得しているアドレス2つあり・・。 192.168.1.○○○ 実在しません 219.101.○○○.○○○ 実在しません 実際の私自信のIPアドレスは、 218.128.○○.○○○ になります 2つの会社のレンタルサーバーを利用しております が、レンタルサーバーごとに実在しないIPアドレスを取得するわけではなく・・・。 A社のサーバー 1つのサイトを運営 192.168.1.○○○ B社のサーバー 4つのサイトを運営 192.168.1.○○○ 2サイト 219.101.○○○.○○○ 2サイト で別々に実在しないアドレスを取得します このことから考えて、perlの記述に間違いがあるのでしょうか? 何度も申し訳ございませんが、アドバイスお願い致します
- a-saitoh
- ベストアンサー率30% (524/1722)
同じNATルータやプロキシを使っている複数の人は、CGIから見ると皆同じIPアドレスからアクセスされたように見えます。
補足
ご連絡ありがとうございます 私自身同じようながショッピングカートに商品を入れた際にも、同じ現象が起きるので、プロバイダーが同じということでしょうか? それとも、ウイルスバスターを利用しているからなのでしょうか? 知識がなく申し訳ございません。ご教授お願い致します
お礼
いろいろご連絡ありがとうございます 環境変数一覧CGIですが、実際のIPアドレスが確認できました フリーのCGIに自分が加工してしまったため、問題が生じた可能性が高いですね! もう少し、調べてみます クッキー式のショッピングCGIの導入を検討します ありがとうございました