

**現状**  
・debug.phpへは管理者のIPアドレスからのみアクセス出来るよう設定しています  
(管理者のIPアドレスは、不定期で随時変更されるプロバイダ契約)  
・IPアドレスが変更された場合、debug.phpへアクセス出来なくなるので、アドレス変更に気が付きます  
・気が付いたら、<https://www.cman.jp/network/support/go_access.cgi>
へアクセスして、IPアドレスを手動でコピペして、下記.htaccessのIPアドレス値を手動で書き換えて、.htaccessをFTPアップロードしています

**.htaccess**

[code]

    <Files ~ "^debug\.php$">
        order deny,allow
        deny from all
        allow from 111.222.33.444
    </Files>
    
[/code]

* * *

**やりたいこと**  
・IPアドレス変更に気がついたら、予め指定したページへアクセスすること等により、PHPで.htaccessのIPアドレスを動的に変更できれば便利なのに、と思い、質問しました  
・IPアドレス変更される度に自動処理されればベストですが、そこまで出来なくても、IPアドレス変更に気がついた際、手作業で処理する負担を少しでも減少させる方法があれば知りたいです


CC BY-SA 3.0
2015-10-08T09:20:54.120
17423
2015-11-17T12:21:14.330
2015-11-17T12:21:14.330
7886
7886
question
php .htaccess
PHPで、.htaccessのIPアドレスを動的に制御したい


おそらく自宅（か会社か）のWAN側アドレスが変更された場合に自動でレンタルサーバーに.htaccessをアップロードしたいといったところでしょうか。  
問題はあなたの環境のルーターからどうやってWAN側アドレスの変更を検知するかですが、  
1.ルーターにそう言った機能があるのならそれを使う。  
2.ルーターの管理画面へHTTP接続できるなら定期的に接続し、情報を読み取る。  
3.アドレス教えてくれる外部サイトに定期的にリクエストして情報をもらう。  
まあ現実的には3.でしょうか。しかし専用APIがあり短い間隔のリクエストを許してくれるようなサービスでなければ迷惑がかかるかもしれません。  
そこであなたのレンサバにallow from Allなところを作ってそこに接続元アドレスを返すAPIを置いてはどうでしょうか。

もし私が見当違いな回答をしていたら、それはあなたの質問が悪いです。  
回答者に予想、想像をさせないように質問をしましょう。


CC BY-SA 3.0
2015-10-08T09:46:05.453
17426
2015-10-08T09:46:05.453
12651
17423
answer


あくまで簡易なアクセス制限で十分、という前提での回答です

  1. アクセス元のIPアドレスを取り出す。
  2. そのIPアドレスを埋め込んだ.htaccessファイルを作成する。

というwebから呼び出せるスクリプトをサーバにおき、変更したいタイミングで人力でブラウザからアクセスするか、ブラウザで開きっぱなしにしておいてmeta
refreshで自動リロードさせるか、タスクスケジューラやcronなんかを使って自動でアクセスすればよいでしょう。

1はPHPであれば`$_SERVER`変数から取り出せます。  
2はプログラミングの練習課題みたいな処理ですのでどんな参考書にでも載ってるでしょう。

まじめにセキュリティ機能として実現するのであれば、上記では全く不十分です。どの程度のセキュリティレベルが必要かもわかりませんし、その認識が正しいかどうかの判断もできませんので、その場合は専門家に相談されることをお勧めします。


CC BY-SA 3.0
2015-10-14T00:29:30.153
17619
2015-10-14T00:29:30.153
5793
17423
answer