これは、Web サイトで認証を制御するための私のコードです。私の論理が正しいかどうかはわかりません。ユーザー名とパスワードが正しい場合、次のことが起こります。
if(session_start())
{
session_regenerate_id(true);//without this the session ID will always be the same
$_SESSION['loggedInUser'] = $uName;
echo 'You are now logged in';
}
else echo 'Right password/username but session failed to start';
後続のページでは、ユーザーがログインしているかどうかを確認します。
session_start();
if(isset($_SESSION['loggedInUser'])
{
//rest of page
}
else echo 'you must log in';
ログアウトするとき、私は持っています
session_start();//if I don't have this the next line produces an error
session_unset();//destroys session variables
session_destroy();//ends session
ログアウト時に session_start() を呼び出さないようにしましたが、そこにない場合はメッセージが表示されますTrying to destroy uninitialized session
。どうすればこれを修正できますか?
IP アドレスとユーザー エージェントに基づいてフィンガー プリントを作成することは推奨されますか? 複数のコンピューターがコンピューターラボなどにある場合、複数のコンピューターが同じ IP アドレスを共有でき、すべてのトラフィックがプロキシを通過し、動的な場合は同じコンピューターが IP アドレスを変更する可能性があるため、悪いと思います。一方、これはどのくらいの頻度で発生しますか?すべてのセッション ハイジャックを防ぐために、いくつかの有効な使用をブロックする価値があるかもしれません。
このトピックについて学ぶために私が読むべき評判の良い記事をお勧めできたとしても、それは素晴らしいことです。
5/6 の回答は 0 未満の票を持っています :( 反対票を投じる人がコメントできるので、何に注意すべきかがわかりますか?