ホームページ > バックエンド開発 > PHPチュートリアル > ログイン関数は一般的にどのように書かれていますか?

ログイン関数は一般的にどのように書かれていますか?

WBOY
リリース: 2016-06-13 12:01:29
オリジナル
1225 人が閲覧しました

ログイン関数は一般的にどのように書かれていますか?
私が知っている方法は、ユーザー名を使用してパスワードを照会し、それが正しければログインに成功し、Cookie を使用してユーザー ID とユーザー名を保存することです。
これは少し簡単ではありませんか?次のステップは何ですか?
------解決策----------------------
これが彼らのやっていることです!
ユーザーを通じてデータをクエリし、データ内のパスワードを比較します。パスワードは暗号化されています。

COOKIES 部分は機能しません。方法が単純すぎます。ユーザー UID と時間 IP フラグを含めて暗号化する必要があります。

アクセスすると、プログラムはCOOKIEに基づいてデータを復号し、データベースと比較して同一人物がログインしているかどうかを確認します
-----解決策--- ------ ----------
権限の検証などを追加する必要があるかもしれません。一般的なアプリケーションには権限管理モジュールが含まれます。ログイン時に権限を確認することは避けられません。詳細については、いくつかのソースコードを参照してください。
------解決策------------------
最も簡単な方法は、ユーザー名とパスワードを確認することです。を追加すると、同時にログインできないことを追加できます。
ユーザーが入力する回数を制限することもできます。ユーザー名またはパスワードが間違っていると、一定時間ログインできなくなります。実はよく考えてみると、ログイン機能にはまだまだ追加できることがたくさんあります。 。
------解決策---------
SQL インジェクションの問題に注意し、

SELECT count(*) FROM user WHERE un = 'xxx' and pw = 'xxx'
ログイン後にコピー
ログイン後にコピー
ログイン後にコピー
このメソッド
は、まず指定されたユーザー名

SELECT pw FROM user WHERE un = 'xxx' 
ログイン後にコピー
ログイン後にコピー
ログイン後にコピー
をクエリし、返された結果の数がゼロより大きいかどうかを判断します
次に、パスワード (pw ) 正しいかどうかを判断します。

------解決策------------------

引用 :SQL インジェクションの問題に注意してください。

SELECT count(*) FROM user WHERE un = 'xxx' and pw = 'xxx'
ログイン後にコピー
ログイン後にコピー
ログイン後にコピー
このメソッドは使用しないでください
が、最初に指定されたユーザー名をクエリします

。 >
SELECT pw FROM user WHERE un = 'xxx' 
ログイン後にコピー
ログイン後にコピー
ログイン後にコピー
そして返された結果がゼロより大きいかどうかを判断します
そしてパスワード(pw)を取得して正しいかどうかを判断します

これは正しいです、これは基本的なログイン機能の実装方法
初心者ですが、ログイン状態では Cookie は使用されない場合はどうなるのかを説明します。使用されていますか? Cookie がインターネット上の攻撃に対して脆弱であることを考えたことはありますか? もちろん、パスワードは保存しないでください。セキュリティ上の理由から、session.cookie_httponly も設定されます。検証コードに関しては、一度間違って入力した後で、失敗したユーザーのログインをカウントするのが最もユーザーフレンドリーな方法です。必要に応じてロックし、1 時間後に再び操作できるようになります。

------解決策---------
引用:
引用: Quote:
SQL インジェクションの問題に注意してください。

SELECT count(*) FROM user WHERE un = 'xxx' and pw = 'xxx'
ログイン後にコピー
ログイン後にコピー
ログイン後にコピー
このメソッド
を使用せず、最初にクエリを実行してください。ユーザー名

SELECT pw FROM user WHERE un = 'xxx' 
ログイン後にコピー
ログイン後にコピー
ログイン後にコピー
を指定し、返された結果の数がゼロより大きいかどうかを判断します
次に、パスワード (pw) を取得してそれが正しいかどうかを判断します

なぜこんなことをするのですか?それらはすべて同じではありませんか?

変数を受け取ったときにフィルターするだけです。予防設計は SQL の外側にある必要があります。

------解決策 -- ------------------私のものはあなたのものよりも単純です...
基本的に LDAP 認証に基づいています..
だから入力を少し判断してから検証します
検証に合格し、データベースにこの ID の情報があるかどうかを判断します。そうでない場合は、LDAP から情報を取得してデータベースに書き込みます。持っている場合は、関連情報を直接セッションに...

-----解決策---------

引用:最も簡単なのは、ユーザー名とパスワードを確認することです。同時にログインできないかどうかを追加できます。
ユーザーが間違ったユーザー名またはパスワードを入力する回数を制限することもできます。エラーが多すぎると、一定期間ログインできなくなります。実はよく考えてみると、ログイン機能にはまだまだ追加できることがたくさんあります。 。
正解したら、パスワードを暗号化して復号化して読み取ります
関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート