さまよえる、Android

Androidのプログラミングで便利なことや残しておきたいことを残しておく。もしオススメのライブラリがあったら教えてくださいね。

Herokuでアクセス制御を実装する(PHP)

IP取得

HerokuのPHPからIPを取得するには、$_SERVER["REMOTE_ADDR"]ではなく、$_SERVER['HTTP_X_FORWARDED_FOR']を利用する。Herokuのシステムはクライアントとサーバーの間に、ロードバランサーという負荷分散システムの仕組みが導入されているらしく、$_SERVER["REMOTE_ADDR"]には、ロードバランサーのIPが代入されている。

<?php
$ipAddress = $_SERVER['HTTP_X_FORWARDED_FOR'] ;

echo $ipAddress . "<br>";
echo gethostbyaddr($ipAddress);
?>

.htaccess

SetEnvIf X-Forwarded-For 124.***.***.*** denyIp1
SetEnvIf X-Forwarded-For 124.***.***.*** denyIp2

order allow,deny
allow from all
deny  from env=denyIp1
deny  from env=denyIp2