PHPでデタラメなホスト名のデータを引っ張ってこようとしたら妙なサイトに繋がった話

ヨメレバCSS
オリジナルCSS

何を言っているかわからないと思うが起こったことを順に書いていくと、

・PHPのpecl_http-v2を組み込んだプログラムで、接続失敗のテストをするためにデタラメなホスト名を指定して接続を行ったら、なぜか全く関係ないサイトへのリダイレクト(302)が返ってきた。

・nslookupやpingでも、そのサイトが正引きされてくる。

・resolv.confに

<pre>

search exsample.com

</pre>

という指定がされており、このexsample.comというドメインが、何をホスト名にしてもIPアドレスを返してきていた。

・つまりデタラメなホスト名(仮にhogehogeとする)にアクセスしようとすると、名前解決で「hogehoge.exsample.com」にされ、謎のIPアドレスが返ってきて接続そのものは成功してしまう、という流れになっていた。

Oh...

ちなみに返ってきたIPアドレスのサイトは、謎の海外ショッピングっぽいところだったりChromeのアンケートに協力したら5000円とかいうところだったりそもそも「フィッシングサイトの可能性があります」とChromeに接続止められたりとなんていうかある意味予想通りの有様でした。

で、なんでexsample.comがそんなところに居たかというと、最初このサーバーがhoge.exsample.comみたいな名前で、ドメインにそれが使われていて。

resolv.confはDHCPの場合、ホスト名その他から自動設定されるので、サーチリストにexsample.comも載ってしまったみたい。

example.comのTypoかなんかなんだろうかなあ。

そうと分かれば解決方法は至極簡単で、resolv.confのsearchからexsample.comを外すだけ。

pecl_httpモジュールだけじゃなくて、cURLライブラリもnslookupもpingも全部この結果を引っ張ってきていたのでだんだん追っかけていくうちに気がつくことができた(nslookupやpingは補完されたホスト名で実行しているのが見えたので気がついた)けど、下手するとずっと悩んでた気がする。検索しても出てこないし、なんて検索していいかわからないし。

こういうのはだいぶレアケースなんじゃないかと思うんだけど、何か類似の事例みたいなのがあるかもしれないのでとりあえず残しておく感じです。

スポンサーリンク
GoogleAdSence レクタングル(大)

シェアする

スポンサーリンク
GoogleAdSence レクタングル(大)