私はちょうどセッションを確実にすることについて考えていました。だから誰かが私にこれを理解させる助けとなるだろうか?ログインセッションを安全にする方法
申し訳ありませんが、私はそれをどのように考えるか説明しましょう。だから、basicly
<?php
if(!isset($_SESSION['login'])) {
$_SESSION['login'] = false;
}
?>
(私は分のポイントを取得します、心配しないでください)、どんな$_SESSION['login']
常に存在しません。かなりきちんとした?多分。
いいえ、ユーザーにログインしてもらいたいとします。 (ポイントに近づく)
<?php
if($_SESSION['login'] === false)
{
if(isset($_POST['login-form']))
{
// execute login code . . .
// if the user had logged in successfully
if($success === true)
{
echo "Successfully logged in.";
$_SESSION['login'] = true;
$_SESSION['username'] = $_POST['username'];
// remember, I just wrote up an example,
// and everything would be filtered and sanitized
// if this were production code
}
}
}
?>
これはセットアップ方法です。 (ほぼそこに)
<?php
if($_SESSION['login'] === true)
{
// get database user information where username is $_SESSION['username'].
// also, the database table: users, would have unique usernames,
// they can't be the same.
}
?>
わかりましたので、セットアップが完了しました。しかし、誰かが$_SESSION['login']
をtrue
に編集するとどうなりますか?そして、彼らは彼らが望むユーザー名に$_SESSION['username']
を変更しますか?つまり、誰かが必要とするアカウントをハックすることができます。また、ユーザーのパスワードと重要なデータを格納するアプリケーションを構築する場合は誰も望んでいません。
質問にはどうしたらいいですか?あなたはdeveloper-tools(chrome)に行き、コンソールに入り、javascriptでCookieを変更することで、Cookie /セッションを変更できます。
もう一度確認する必要がありますか?しかし、それがポイントです。だから、あなたのうちの一人がこの質問を理解するのを手伝ってくれたらうれしいです。
side note:セッションIDは常にクッキーで渡されるとは限りません –
だから、人々は私のセッションにアクセスすることができません。つまり、私がSSLを使用している限り、私は良いものになるはずです。まあ、少なくともあなたが言っていることから。 –
@ダゴン:機能ではなくバグであるURLに 'PHPSESSID'を渡していればうまくいきます。少なくともIMHO。 :P – Sammitch