1

クッキーとセッションを使ったPHPのセキュリティに関して、これは私が攻撃を防ぐためにこれまで行ってきたことです。私は間違った/安全でないことをしましたか?

login.php

 if ($username==$dbusername&&$hashed_password==$dbpassword){

setcookie('username[0]',$username,time()+(60*60*24*365));
setcookie('username[1]',$userid,time()+(60*60*24*365));
setcookie('password',$hashed_password,time()+(60*60*24*365));

if($admin=='1') {
setcookie('username[3]',$admin,time()+(60*60*24*365));  
}
$_SESSION['logged-in']=1;

logout.php

    $time = time()-(60*60*24*365);
setcookie('username[0]', '',$time);
setcookie('username[1]', '',$time);
setcookie('username[2]', '',$time);
setcookie('username[3]', '',$time);
setcookie('password', '',$time);
unset($_COOKIE['username']); 
unset($_SESSION['logged-in']);

すべてのページでsession_regenerate_id()を呼び出しますが、セッション固定/ハイジャックを停止するのは正しいですか?

<?php session_start(); session_regenerate_id();

これが私のPHP.iniです。セッションとCookieにセキュリティを提供する他の方法は何ですか。

    session.use_trans_sid = 0
session.user_only_cookies = 1

私は例でよりよく学ぶので、どんな例/改善も歓迎しました。

4

2 に答える 2

2

アクセス権限を変更するとき (ログイン後など)、セッション ID の再生成が行われることがよくあります。

パスワードは、ハッシュであっても、クライアント側の Cookie に保存しないでください。セッションに保存する必要さえありません。ログインを確認するためだけに使用します。状態をセッションに書き込んだ後は、パスワードを忘れる必要があります。

本当に安全なサイトが必要な場合は、SSL 暗号化によるHTTPS 接続が必要です。そうしないと、攻撃者はプレーンテキストで送信された情報を盗聴し、セッション ID (またはユーザーの認証に使用するもの) を使用してユーザーになりすますことができます。

于 2012-07-01T06:50:16.023 に答える
1

パスワードを Cookie として保存しないでください。それ (コンピューター) は、カフェやその他の場所にある可能性があります。

これはセキュリティ上の問題であり、破られる可能性があります。

ところで、人があなたのシステムに侵入する方法について再考し、狡猾な心を使ってください.

于 2012-07-01T04:46:34.220 に答える