sakuraのマルチドメイン設定してるサーバでpostした時のサーバ情報

別にpostじゃなくてもいいんですが、
とにかくsakuraのマルチドメインサーバから他サバを叩いたときの話です。
何回かハマったのでメモってきます。

専用APIとか発行してもらって、
そこにアクセスする際、IPで許可とかしてもらうと思いますが、
IPとドメインのセットで許可してる場合の現象です。

以下PHPで取得した場合のデータです。

許可されたIP:192.168.0.1
許可されたドメイン:hogehoge.com

通常のサーバでアクセスした時

許可してる側からは

print($_SERVER['REMOTE_ADDR']);
⇒192.168.0.1

print($_SERVER['REMOTE_HOST']);
⇒hogehoge.com

ってなるわけです。

なので、これを両方みておけばいいでしょうってなるんですが、
sakuraのマルチドメイン設定だとこれが変わります。

sakuraのマルチドメインサーバでアクセスした時

許可してる側からは

print($_SERVER['REMOTE_ADDR']);
⇒192.168.0.1

print($_SERVER['REMOTE_HOST']);
⇒111.101.10.1.static.www1a.sakura.ne.jp(例です。環境によって変わります。)

ってなかんじで、REMOTE_HOSTがかわっちゃいます。
なので、IP+ドメインの両方で見ていると、
単純にAPIアクセス側がsakuraに移行しちゃうと
セキュリティエラーではじかれちゃうという。

3回ハマって、ハマった瞬間思い出すという切ない感じです。

Leave a Reply