2016-04-08 6 views
1

セッションパラメータを使用して、検証済みのデータがあるPHPページから別のPHPページに渡されるとします。PHPセッションデータは安全ですか?

2番目のphpページで、このセッションデータはまだ最初のPHPページで検証されたデータであることを確認できますか?私が理解していることから、セッションデータはユーザーのコンピュータのクッキーに保存されています。では、ユーザーがセッションのCookieに破損したデータを挿入しないようにするにはどうすればよいでしょうか?

私のシナリオでは、2番目のページに渡されたデータがすでに検証されているという事実に頼る必要があるためです。

したがって、検証されたデータをあるページから別のページに安全に渡すにはどうすればよいですか?事前に

多くのおかげで、 Floのセッションデータを格納しないでください

+1

いいえセッションデータはサーバーに保存されます。あなたはクッキーにセッションデータを保存することができますが、PHPは通常それをしません。あなたはそれを自分で実装する必要があります。短いストーリーでセッションは十分に安全でなければなりません。 – Andrew

+1

クッキーに格納されるものはすべて、セッションID(PHPSESSID)です。あなたのデータはphp設定で指定したディレクトリに安全に保存されます。あなたが避けることができないのは、ユーザーが彼のPHPSESSIDを変更しないようにすることです。彼はセッションディレクトリに情報を追加しないため、問題はありません。 PHPは単に無効なidsを破棄し、新しいidsを生成します。 –

+0

[Laravel 4セッション変数は保護されていますか?](http://stackoverflow.com/questions/31948725/are-laravel-4-session-variables-secure) –

答えて

3

セッションデータ自体はサーバー側に格納されています。クライアントのコンピュータに格納されている唯一のものは、一意の識別子を持つCookieです。そのため、サーバーはサーバー側で読み込むセッションを認識しています。

ユーザーはセッション自体に格納されたデータを操作することはできません。その意味で、セッションは安全です。

もちろん、Cookie自体はユーザーから盗まれ、別のユーザーが使用する可能性があります(「セッションハイジャック」と呼ばれる方法)。たとえば、セッションをIPアドレス、ブラウザのバージョンなどにロックしたり、HTTPSを使用して接続を盗聴しているユーザーから保護したりすることで、ユーザーを保護することができます。

+1

私はセッションハイジャックの詳細を知っています。最近、私は "Browser Hackers Handbook"という本を読んでいたので(セキュリティ関連のプログラマーのために読んでみてください)、これは私をちょっと変貌させました^^。しかし、ユーザーがデータを知っているかもしれないが、それを変更できないようにしなければならないので、セッションハイジャックは本当に問題ではない。 これに関して多くのお礼ありがとうございます – flxh

1

はクッキーがサーバ側$ _SESSION []にセッションデータを.Storeである。第2のページのチェック場合に、今の例

<?php 
session_start(); 
// VALIDATION CODE 
$_SESSION['name'] = 'Validation name'; 
?> 

のためにこのセッションが設定されているかどうか。設定されている場合、ユーザーは有効になります

<?php 
session_start(); 
if(isset($_SESSION['name'])){ 
// USER IS VALIDATED 
}else{ 
// UNAUTHORiZED Access 
} 
?> 

これはサーバー側であり、何度も何度も検証する必要はありません。 ありがとう

+0

あなたはたぶん、「...あなたは何度も何度も検証する必要があります」と言いたいと思っていました。それ以外の場合は、私はそれを取得しません – flxh

0

私が理解したところでは、セッションデータはユーザーのコンピュータのクッキーに保存されています。

これはありません。

セッションデータは、サーバーに保存され、Cookieを使用して特定のユーザー+ブラウザーに関連付けられます。

クッキーユーザーが唯一編集することによって:

  • アクセス他の誰かのクッキーを(非常に低い)
  • セッションもあることに注意

新しい空のセッションを取得クッキーは、クライアントにデータが格納される場所です。これは、ブラウザが終了したときに期限切れになる有効期限のない通常のCookieです。このタイプのクッキーは、通常、セッションIDをクライアントに格納するために使用されます。

+0

太った指を残して申し訳ありません - それは携帯電話の失敗です –

+0

@ダゴン - それを削除するにはもう一度タップすることができます – Quentin

+0

yup申し訳ありません、その電話を、あなたがダウンして取得しようとするロックインされているが、私はあなたが担当者の損失を生き残ることができると確信している:-) –

1

セッションデータは、2ページ

// Page1.php 
// Set the session on page 1 
session_start(); 
$_SESSION['myValue'] = 'secure_value'; 

// Page2.php 
// Get the session on page 2 
session_start(); 
$validValue = $_SESSION['myValue']; 
上の同じデータになり、1ページの検証データを想定して保存されますので、このように、ユーザは、セッション中に何かを編集することはできません、サーバー側のみに保存されています

重要な情報をクッキーに保存しないでください。クライアント側に保存されているので、&を変更できます!

関連する問題