2012-04-17 16 views
0

私は、クライアントとPHP上のサーバー上のPHP、サーバー上のオープンセッション、およびその "PHPスクリプト内"のJSを持つアプリケーションを作成しています。 DBからは$_SESSION["uID"]に保存されていました。私は、セッションが識別の問題を処理し、各ユーザーの要求がそれ自身のセッションで受信されるため、ユーザーセッションをjavascriptからphpに送信する間にこれで十分だと思っていました。別の..私はそうですか?または私は別のテクニックを使用する必要がありますか?
jsからphpにユーザーIDを送信する必要がありますか?またはPHPで宣言するだけで十分ですか?
セッションIDなどを使用する必要がありますか?jsからphpへのユーザデータの送信

+0

デフォルトでは、PHPはセッションIDをクッキーに保存します。 Cookieは、リクエストごとにサーバーに送り返されます。 –

+0

あなたの最初の変種はOKです。 userIDは '$ _SESSION [" uID "]'に格納することができます。ユーザーを識別するために、JSからPHPへのuserIDを渡す必要があります。各ユーザは自分自身の '$ _SESSION'スーパーグローバル配列を持っています。 –

答えて

2

jsによってユーザーIDを送信すると、アプリケータが安全でないことがあります。誰でも誰にでもなることができます。 セッションがクッキーによって設定されている場合は、そのセッションをPHPエンドで使用すれば十分です。 jsによってセッションIDが送信される必要はありません。これは、クッキーによってブラウザから自動的に送信されるためです。

0

時間をかけてセッションを読み上げます。

テストしたときに何が起こったのですか?

通常、セッションIDはCookieで送信されます。 xmlhttp要求でクッキーをサーバーに送信する必要があります。 Cookieは、HTTPリクエストによってブラウザに設定されます。

セッションIDを他の手段で送信し、セッションクッキーをjavascriptで設定することは可能ですが、基本的なことを理解するまでは説明が分かりません。

1

phpスクリプトの先頭でsession_start()が呼び出されると、$ _SESSION ["uID"]にアクセスできるようになります。独自のuIDをユーザーに提供した場合は、PHP内でのみ使用する必要があります。さらに、uidを使ってjsからphpに電話をかけると、javascriptが簡単に妨害され、「間違った」uIDが渡される可能性があるため、大きなセキュリティ上の抜け穴があります。だから、私はあなたが言ったことに固執し、私の判断は次のようになります:はいそれはphpで宣言するのに十分です:)

0

phpはクライアントがすべての要求で送信されるクッキーとしてセッションIDを保存します。ただし、ユーザーがCookieを保持しない場合、セッションはキャンセルされます。悪いことに、ユーザーが安全でない場所からログオンした場合、攻撃者はセッションIDを取得し、システムは間違って犠牲者として識別します。

実際には、クライアントを特定する絶対的な方法はありません。ほとんどの場合セッションIDは十分ですが、余分なセキュリティ層が必要な場合は、IPチェックとセッションと組み合わせてアカウントを使用してください。

関連する問題