0

従来のASPで記述された製品があります。私たちは同じためのセキュリティ認証を受けています。下記のいずれかの基準に合格することができません。

セッショントークンの長さとエントロピーは次のとおりです

問題:セッションIDの長さは24文字であり、セッションIDは本質的にランダムではありません。それらは予測可能です。

推奨事項:セッションIDは、より長く(少なくとも50文字)、本質的にランダムである必要があります。

誰かがこれについて何か提案がありますか?

4

1 に答える 1

0

セキュリティに関連する目的でSessionを使用しないでください。データベースを使用して、独自のセッションのようなメカニズムを実装します。これを機能させるには、次の手順に従う必要があります。

  1. すべてのページリクエストで、「SESSION_TOKEN」という名前のフォーム変数の値(またはもちろん独自の名前)を確認し、存在しない場合は、50文字のランダムな文字列を作成して、クエリ文字列または非表示のフォーム値としてページからページに渡します。
  2. SESSION_TOKENを「Session_Data」と呼ばれるデータベーステーブルのキーとして使用します。これは、従来のASPセッションコレクションをエミュレートし、上記のトークンに基づいて各セッションのデータを保持し、データを「期限切れ」にできるように最終アクセス時間を格納するフィールドを持ちます。 。

これにより、少なくとも良いスタートを切ることができます。もちろん、別の方法はASP.NETに切り替えることですが、それはすでに頭に浮かんだと思います。:)

于 2012-07-02T06:11:30.190 に答える