1台のコンピューターからのみphpWebページにアクセスできるようにしたい。
IPチェックはそれに適していません(動的IP)。
トークンを使って(有効期限のない)Cookieを設定できました。次に、Cookieに正しいトークンがあるかどうかを確認してページを表示できます。そうでない場合は、die()を実行できます。クッキーが盗まれる可能性があるので、これは安全な解決策ではないと思いますね。
じゃあ何をすればいいの?
PS明らかに私は毎回ログインすることはできません。
1台のコンピューターからのみphpWebページにアクセスできるようにしたい。
IPチェックはそれに適していません(動的IP)。
トークンを使って(有効期限のない)Cookieを設定できました。次に、Cookieに正しいトークンがあるかどうかを確認してページを表示できます。そうでない場合は、die()を実行できます。クッキーが盗まれる可能性があるので、これは安全な解決策ではないと思いますね。
じゃあ何をすればいいの?
PS明らかに私は毎回ログインすることはできません。
したがって、ここにいくつかのオプションがあります。
クライアント側の証明書を作成し、クライアント証明書を使用して認証するようにWebサーバーを構成します。問題が解決しました。将来、より多くのコンピューターをサーバーに接続する必要がある場合は、それらのコンピューターにもクライアント証明書を付与します。
コンピューターにダイナミックDNS名(myclient.dyndns.com)を付け、コンピューターにdyndnsクライアントをインストールします。dyndnsクライアントは自身のIPをチェックし続け、コンピュータのIPが変更されるたびにネームサーバーエントリを更新します。サーバー側では、リクエスターが提示するIPがmyclient.dyndns.comと同じであるかどうかを確認し、同じである場合はアクセスを許可するだけです。
これのちょっとした落とし穴は、IPが変更されてからdyndnsクライアントがそれをネームサーバーに出力するまでの間に小さな(構成可能な)時間枠があることです。したがって、IPが変更されるたびに、コンピューター上のdyndnsクライアントがIPを検出してネームサーバーを更新するまで、サーバーはその時間枠内のコンピューターからの要求を許可しません。これは、コンピューターが新しいIPを提示し、myclient.dyndns.comが古いUPに解決されるためです。この時間枠は、必要に応じて小さくすることができます(1秒でも)。もう1つの小さな落とし穴は、このn秒のウィンドウで、ISPによって割り当てられた古いIPを取得するランダムなコンピューターがサーバーにアクセスできることです。これの可能性は非常に小さいですが、可能性として言及しているだけです。
そこに多くの無料のダイナミックDNSサービスがあります。あなたはそれらをグーグルすることができます。
あなたはクッキーを使うことができます。ただし、正しく識別した場合、Cookieが盗まれる可能性があります。現在、盗まれる可能性のある2つの方法があります。
また、考えてみてください。認証されていないすべてのコンピューターについて、カスタムの「アクセス拒否」ページではなく、標準の404応答を送信します。このようにして、サイトでクローラー/ボット/スキャナーを実行している人は、このカスタムレスポンスに興味をそそられず、セキュリティ制御を回避しようとはしません。
URIのパラメーターとして一意のパスフレーズを使用できませんか?例:http ://www.example.com/index.php?passphrase = sfauh452h8243nf2489ht8924t48nf3984
サーバーに保存されているものと一致するかどうかを確認しますか?
あなたがユーザーではない場合、それは他の誰かです...その場合、ページにアクセスできるようにするために必要なのは、その特定のクライアント(コンピューター)だけです。
いずれにせよ、初めて何らかの登録が必要です。たぶん、上記のURIの例は次のように機能します。リクエスト:http ://www.example.com/index.php?passphrase = sfauh452h8243nf2489ht8924t48nf3984パスフレーズが正しいかどうかがチェックされ、ブール値がサーバーに保存されます。再度「登録」します。正しければ、一意のキーを使用してCookieが生成されます。これと同じキーがサーバー(ファイル、データベースなど)にも保存されます
したがって、後続のリクエストでは、サーバーに保存されているキーとCookie内のキーを比較するだけで、クライアントが誰であるかがわかります。