0

私はセッションを試しています。

安全なセッションにしようとしています。ソルティングとハッシュによって検証された後でのみ、ユーザーが5に等しい「signin」のセッション変数を受け取るようにしています。

 if($passwordhash == $tablehash)
    {
            session_start();
            $_SESSION['signin'] = 5;
            header("Location: /~cssgf3/cs3380/lab7/home.php");

そして、このステップで検証されるようにリダイレクトされるページがあります。

session_start();

$sessionValue = 5;//$_SESSION['sessionValue'];
$userSession = $_SESSION['signin'];

if($userSession == $sessionValue)
{

これがセッションを認証する適切な方法であるかどうか私は興味があります。この時点ではセキュリティについてあまり心配していませんが、これがまったく安全であるかどうか、そうでない場合は、それを修正するための簡単な方法があるかどうかに興味がありますか?

4

2 に答える 2

2

非常に幅広い質問です。簡単に言えば、そうです、それが通常のアプローチです。安全にする必要があるのは、通常、次のようなものです

  1. コードSQLインジェクションは安全ですか?誰かがログインをバイパスできますか?
  2. 誰かがブルートフォース攻撃を使用できますか?
  3. コードXSSは安全ですか?
  4. コードCSRFは安全ですか?
  5. セッションCookieは安全に保存されていますか?HTTPSのみを使用する必要がありますか、それともセキュリティで保護されたプロパティを使用する必要がありますか
  6. レインボーテーブル攻撃に対して安全ですか?パスワードを保存するときにソルティングを使用していますか?

リストは続けることができ、もちろんこれらは必要なセキュリティのレベルに依存します。

また、ページがユーザー固有である場合は、特定のオブジェクトに対して各アクションを実行できることも確認する必要があります。たとえば、注文の場合、ユーザーがログインしている場合だけでなく、現在ログインしているユーザーが所有する注文です。

お役に立てれば。

于 2012-10-23T00:43:47.113 に答える
1

大まかに言って、そうですが、コードをもっと理解していなければ、言うのは難しいです。

5の値ではなく、ユーザーに一意の値を割り当てる方がよいでしょうINT

于 2012-10-23T00:38:20.113 に答える