apacheで取得できるREMOTE_ADDRは偽装できるのでしょうか?

この値をどの程度信頼して良いのかご存知の方いらっしゃいましたら教えて下さい。

※ phpの$_SERVER['REMOTE_ADDR']で取得できる値です

回答の条件
  • 1人2回まで
  • 登録:2007/10/22 23:35:41
  • 終了:2007/10/29 23:40:03

回答(4件)

id:koujirou6218 No.1

koujirou回答回数597ベストアンサー獲得回数472007/10/22 23:49:18

ポイント23pt

REMOTE_ADDRはクライアントが渡す環境変数なのでIP以外は容易に偽装できてしまいます。

また、プロキシを利用している場合は正しく環境変数が取得できない場合もあります。

IPが偽装できるか?という点に関してはおそらく無理だと思われますがその他の環境変数は偽装というよりも変更できます。

リフェラーの変更は、携帯端末のブラウザやPC端末で見る携帯ブラウザでよく利用されている技術です。

リンクはダミーです

http://q.hatena.ne.jp/1193063738

id:tomoyuki28jp

ありがとうございます。

参考になりました。

2007/10/23 00:10:55
id:KUROX No.2

KUROX回答回数3542ベストアンサー獲得回数1402007/10/22 23:54:56

ポイント23pt

http://oshiete1.goo.ne.jp/qa2068273.html

http://oshiete1.goo.ne.jp/kotaeru.php3?q=1045255

http://hack.dot.thebbs.jp/1065413692.e40

どの程度信頼したらよいかは、

使おうと思う目的によるのではないかと思います

-----------------------------------------------

プロキシーとか通ってると、

マシンのIPアドレスじゃなくてプロキシーのIPになると思います。

パケットレベルでIPを書き換えれば、偽装できると思いますが・・。

http://www.atmarkit.co.jp/fwin2k/network/baswinlan010/baswinlan0...

送信元のIPアドレスを書き換える。リクエストは投げれても、その応答を受け取れないと

いうか、偽装されたIPに応答を返すしかないので、そういう動きすると思います。

id:tomoyuki28jp

いつもご回答ありがとうございます。

特定のIPに偽装してアクセスということも可能なのでしょうか?

2007/10/23 00:11:30
id:rev-9 No.3

rev-9回答回数61ベストアンサー獲得回数82007/10/23 01:41:29

ポイント22pt

http://www.mc.gunma-u.ac.jp/doc/security/intrd-dfs/attck-spf.htm...

 TCP/IPの仕組みという観点からは、REMOTE_ADDRの偽装は「不可能ではないがきわめて困難」なレベルです。↑の回答のようにパケットを改竄したとしても、その場合はサーバーからの返信がその偽装されたアドレスへ向かうことになりますから、通信そのものが成立しません。通信を成立させるためにはアドレスの偽装だけではなく、このURLの「1.6.6  TCPコネクションのハイジャック」にあるように「シーケンス番号」というものを予測する必要がありますが、これは今どきのまともなOSなら予測できないようにしています。きちんとセキュリティパッチを当ててさえいれば、まず心配はありません。

 そもそもパケットの改竄自体、プロバイダなり回線事業者なりホスティング業者なりの中の人が馘首と損害賠償覚悟でそのためのシステムを構築してサーバー室に持ち込めばあるいは可能かも、という難易度です。しかもその場合、多くのお客様の通信の中から偽装のターゲットとなる通信を選別しなければなりません。こういうことを書いて気を悪くなさらなければよいのですが、確率としてはおそらく自社内の内部犯行のほうがまだしも高いです。

 つまり結論としては、「REMOTE_ADDRが実際にサーバーと通信を行っている相手のIPアドレスであることはほぼ間違いない」と考えて大丈夫です。ただし既に他の方の回答にもありますように、「実際にサーバーと通信を行っている相手」がユーザーのPCなのか、それともプロキシーなのか、あるいは携帯キャリアのゲートウェイなのか、は別問題です。

http://e-words.jp/w/E38397E383ADE382ADE382B7.html

 プロキシー経由のWebアクセスでは、ユーザーのPCはプロキシーサーバーと通信しています。直接のWebサーバーとのやりとりは発生しません。Webサーバー側からは、TCPのコネクションのレベルではプロキシーサーバーがクライアントとしてアクセスしてきているようにしか見えません。いずれかの環境変数でユーザーPCのIPアドレスが通知されることもありますが、しなければならないと決まっているわけではありません。

 携帯電話からのアクセスの場合は、そもそも電話機~携帯キャリア間の通信はTCP/IPではありません(一部のPDAタイプのものを除く)。Webサーバーにクライアントとしてアクセスしてくるのは、あくまでもキャリアの設置しているゲートウェイです。

id:y-kawaz No.4

y-kawaz回答回数1421ベストアンサー獲得回数2262007/10/23 02:55:04

ポイント22pt

REMOTE_ADDR はサーバから見たTCPセッションの接続元IPであり、これを偽装することはほぼ不可能と言って良いと思います。


プロキシ接続やNATを経由した場合は、ブラウザが動いているPCなどの端末が持っているIPではなく、ゲートウェイとなるプロキシやルータのIPに偽装(?)は出来ていると言えるかも知れませんが、所詮ゲートウェイのIPアドレスが REMOTE_ADDR に入るだけで自分がそのゲートウェイのIPから出てきたことは隠すことは出来ません。これでは REMOTE_ADDR を偽装したことにはならないと思います。

そもそも家庭内でブロードバンドルータを経由してインターネットに接続している場合PCには192.168.0.x等のローカルIPが付いていますが、サーバ側にはそのIPではなくブロードバンドルータのWAN側IP(プロバイダから割り当てられた)がREMOTE_ADDRとして見えますよね、プロキシやNATはそれと同じです。


別回答に対して以下のように聞いていることから、

特定のIPに偽装してアクセスということも可能なのでしょうか?

多分質問者さんが聞きたいことは、「自分の家からサイトを見るんだが、あたかも友達の家のIPからアクセスしているようにサーバに見せることは出来るか?」ということだと思います。

これは友達の家にプロキシサーバやその他ゲートウェイになりうるものが設置されてでも居ない限り不可能です。

例外として、騙したいWEBサーバの置いてあるネットワークと同じかもしくは非常に近いセグメント(例えばWEBサーバと同じHUB)に物理的に接続することが可能な場合は、全く関係ないIPを偽装して通信することは出来なくはありません。

  • id:b-wind
    >特定のIPに偽装してアクセスということも可能なのでしょうか?
    http://www.stackasterisk.jp/tech/program/howtosniff02_01.jsp
    技術的には難しくないが、状況を作り出すには手間が要る。
  • id:KUROX
    >特定のIPに偽装してアクセスということも可能なのでしょうか?

    可能だけど、嫌がらせや攻撃目的外で使うとは思いません。

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

絞り込み :
はてなココの「ともだち」を表示します。
回答リクエストを送信したユーザーはいません