sql >> データベース >  >> RDS >> Mysql

ユーザーのログインを維持するための正しく安全な方法は何ですか?クッキー?セッション? PHP &&MYSQL

    まず、これをお話ししましょう。 100%安全なものはありません。気密なものはなく、神聖なものもありません。十分な動機があれば、攻撃者はあなたが置く可能性のあるすべてのサーバー側の防御を破ります(HTTPSを使用している場合を除きます。これは別の話です)。

    Cookieを使用することもできますが、Cookieは非常に公開されており、簡単に変更できます。プライベートデータやアクセスレベルをCookieに保存しないでください。攻撃者によって簡単に盗まれたり変更されたりするため。

    セッションも100%安全ではありません。サーバーがクライアントを識別するために使用するセッションIDは、2つの方法のいずれかで送信されます。 $ _GET変数(悪い)、またはcookie(良いですが、それでもかなり悪い)。つまり、セキュリティで保護されていないWiFiを介して管理者としてログインしている場合、熟練した攻撃者(熟練した攻撃者とは、単純なHTTPスニファをダウンロードしたpr0 haxx0r)がセッションIDを簡単に盗む可能性があります。また、パスワードを取得していない間、サーバーは攻撃者を誤ってあなたとして識別し、あなたが持っている/持っていた可能性のあるアクセスを攻撃者に許可します。

    じゃあ何をすればいいの?ほとんどの場合、セッションは安全です。安全でないネットワーク(バス、インターネットカフェなど)でログインしないようにユーザーにアドバイスしてください。ユーザー認証を長期間維持できるようにする場合は、Cookieが必要です。必要な場合は通常、2つのCookieシステムを使用します。

    userid=12345
    hash=password_hash($userid . $hashed_password, PASSWORD_DEFAULT)
    

    次に、一致するものがありますが、ユーザーの詳細は明らかにされませんでした。

    しかし、私が言ったように、結局のところ、本当に本当にユーザーを保護したいのであれば、この回答に書かれている他のすべてに加えて、HTTPSを取得してください。



    1. postgresqlによって生成されたシーケンスの前に文字列のプレフィックスを付ける方法は?

    2. バックアップファイルからMysqlデータベースを回復する方法

    3. Hibernateを使用してOracleでLARGEBLOB(> 100MB)を永続化する方法

    4. MySQL:大きなテーブルをパーティションに分割しますか、それとも別々のテーブルに分割しますか?