各キャリアが公開しているゲートウェイのIPアドレス帯域によるアクセス制限を行っているのですが、
このIPアドレス帯域をなるべく最新の情報を保つようにしたいです。
何か効率のよいやり方、もしくは工夫していることなどあれば教えていただきたいです。
ちなみにPHPで構築したサイトで、IPアドレス帯域をMySQLに保存してアプリで判定しています。
よろしくお願いいたします。
Bombastusのが正当だと思います。公式サイトを運用している時はキャリアからいろいろな通知のメールがくるので、それを見てやってました。
私も個人で携帯のIP範囲をどうしようかと思うと、やっぱりサイトを見て回るか、該当ページをphpなりで取得しスクレイピングして、リストを作ったほうがいいかなと。思ってます。作ったリストをメールで飛ばして、自分で承認して反映と作らねばとんでもない値になりかねませんが。
アドレスの判定だと、
ルータでフィルタ
サーバでIP的にフィルタ(iptablesなど)
apache本体のhttpd.confでフィルタ
.htaccessでディレクトリごとにフィルタ
これは試したことがありませんが、
.htaccessでファイル名で制限してフィルタ(<Files>ディレクティブ)
かなと。
アプリケーションで行うのも有りだとは思います。多少のオーバーヘッドがでてくるのと、
DBがひけない時などのエラー処理をすれば問題ないかと。
定期的に下記サイトを巡回して、IPアドレスを取り出すのが王道だと思います。
PHPを利用できるのであれば、自動的に抽出できるでしょう。
ご回答ありがとうございます。
確かに一般的なやり方のようですね。
ただライブラリとかあってもよさそうなのに見つからなくて・・・
みなさん自前で作られているんですかねぇ。
>IPアドレス帯域をMySQLに保存してアプリで判定しています。
アプリで判定するのはいかがなものか?
インフラに近い側でチェックするべきでは?
ご回答ありがとうございます。
インフラに近い側ですか・・・
.htaccessで対象のIPのみallowするというのも一般的なやり方だと思うのですが、
特定のページ(マイページなど)だけ携帯のIPでしかアクセスできないようにしているので、
アプリで判定をする方が運用が楽になるかと思って、こういうつくりになっています。
可能であれば、具体的にどういう風にインフラに近い側で制御なさっているのかご教授願えますか?
またIPアドレス帯域の更新についても教えていただけると助かります。
Bombastusのが正当だと思います。公式サイトを運用している時はキャリアからいろいろな通知のメールがくるので、それを見てやってました。
私も個人で携帯のIP範囲をどうしようかと思うと、やっぱりサイトを見て回るか、該当ページをphpなりで取得しスクレイピングして、リストを作ったほうがいいかなと。思ってます。作ったリストをメールで飛ばして、自分で承認して反映と作らねばとんでもない値になりかねませんが。
アドレスの判定だと、
ルータでフィルタ
サーバでIP的にフィルタ(iptablesなど)
apache本体のhttpd.confでフィルタ
.htaccessでディレクトリごとにフィルタ
これは試したことがありませんが、
.htaccessでファイル名で制限してフィルタ(<Files>ディレクティブ)
かなと。
アプリケーションで行うのも有りだとは思います。多少のオーバーヘッドがでてくるのと、
DBがひけない時などのエラー処理をすれば問題ないかと。
レス遅くなり申し訳ありません、ご回答ありがとうございます!
>公式サイトを運用している時はキャリアからいろいろな通知のメールがくるので、それを見てやってました。
これは知りませんでした。更新のタイミングが分かっていいですね。
たしかにスクレイピングして抽出したものをそのままDBに突っ込むのは危険な香りがするので、
該当ページを定期的にクロールして、変更があればメールで通知するようなbotを作って、
通知がきたら手動でDBに追加するような運用でいきたいなと思ってます。
レス遅くなり申し訳ありません、ご回答ありがとうございます!
>公式サイトを運用している時はキャリアからいろいろな通知のメールがくるので、それを見てやってました。
これは知りませんでした。更新のタイミングが分かっていいですね。
たしかにスクレイピングして抽出したものをそのままDBに突っ込むのは危険な香りがするので、
該当ページを定期的にクロールして、変更があればメールで通知するようなbotを作って、
通知がきたら手動でDBに追加するような運用でいきたいなと思ってます。