2010-11-19 28 views
2

現在、セッション内のキーをMySQlデータベース内の同じキーと照合することによって、ユーザーのセッションを認証します。すべてのページの読み込み時にMD5が保護されている乱数でセッションを再生成します。私はセッションが本質的に安全ではないことを知っています。私は、この方法に迅速に取り付けることができるさらなるセキュリティオプションを探しています。

すべてのアイデア?

答えて

3

セッションデータはサーバー側に保存され、セッションIDはクライアントの要求を特定のセッションに関連付けるために使用されるため、保護する必要のあるセッションIDです。そのセッションIDを保護する唯一の実行可能な措置は、TLS/SSLを使用してクライアントとサーバー間の接続を暗号化することです。

したがって、クライアントと使用の間のデータ転送が安全である限り、セッションを使用できます。さらに、PHPセッションをTLS/SSLセッションに修正して、PHPセッションをその特定のTLS/SSLセッションでのみ使用できるようにすることもできます。

0

あなたは既にセキュリティを強化するために何もしていないフープを突き抜けており、潜在的にサイトの機能性を損なっています。

は私もスペルミスを脇に残してMySQLデータベース

で同じキーにセッション内のキーを照合することによって、[原文のまま]ユーザセッションをautheticatic、これはナンセンスです。この方法でリクエストを認証することを意味しますか?もしそうなら、それはあなたのセキュリティを助けていない。セッションの参照を解除してリクエストをすでに認証しています。要求が承認されるかどうかは全く異なります。ユーザーを認証する必要がある場合は、セッションデータにこれをフラグする必要があります。

CSRFを防止しようとしているようですが、ユーザー、セッション、または要求を認証しているかどうかにかかわらず、このすべてが混在しているようです。

私はセッションを再生成...すべてのページのロードアゲイン

に、これはセマンティックナンセンスです。セッションを再生成することはできません。新しいsessionIdを作成するということですか?そうであれば、ユーザーが2番目のウィンドウを開くか、戻るボタンを使用しようとするとエラーが発生します。 CSRFの保護はほとんどありません。

MD5はちょうどランダムな暗号化機能を使用すると、アプリケーションが安全なことはありません

を保護されています。実際のデータと代理識別子との間のマッピングが何であるとしても、それ自体はMITMに対する保護を提供しない。

あなたの現在のセキュリティ対策について非常に悪い仕事をしているか、または有用な目的を果たさないコードをたくさん書いています。

多くのStefan Esser'sおよび/またはChriss Schiflet'sものを読んでください。