-1

ログインが成功した後、ユーザー名を Cookie に保存したいと思います。ユーザーが管理者としてデータベースにマークされている場合は、ユーザー名とパスワードの両方を何らかの方法で保存したいと思います。パスワードの保存を読みましたCookie 内での使用は安全ではありませんが、他にどのように行うことができますか。これは jQuery モバイル Web サイト用です。http://jsfiddle.net/jamesil/4VAJc/を参照してください。これは、現在ユーザー名とパスワードの両方を保存し、js を使用しているものです。多分これはPHPで行う必要がありますか?現在、管理者だけに何かを表示したい場合は、これで何でもラップします

<?php 
$is_admin=(isset($_SESSION) && isset($_SESSION['is_admin_flag']) && $_SESSION['is_admin_flag']=='t');
?>
Some code
<?php } ?>

どんなフィードバックも大歓迎です。また、私は PHP に非常に慣れていません。乾杯

4

1 に答える 1

0

はい、クライアント側にパスワードを保存することは非常に安全ではありません。サーバー側でトークンを生成する必要があります。私は、任意の暗号化アルゴリズムie(、、)を使用する一意の識別子を意味しmd5ます。sha1sha256

たとえば、連結されたユーザー名とパスワードの情報に加えて、ランダムな情報を使用してトークンを作成します。

md5($_SESSION['username'] . $_SESSION['password'] . time() . microtime())

次に、このトークンをデータベースに保存し、このトークンをユーザーのCookieに保存します。

このトークンは、ユーザーがすでに認証されていることの証明です。したがって、その後、クライアント側では、すべてのリクエストがhttpヘッダーまたはその他の場所でトークンを送信する必要があり、バックエンドでは、データベースで並べ替えられたものと比較されます。

それらが一致する場合、あなたはリクエストが適切な人から来ていると確信しています。

もう1つは、最後のリクエストからしばらくして(30分程度)トークンを期限切れにすることです。

于 2012-09-23T05:10:46.817 に答える