3

私はPHPを使い始めており、独自のログイン/登録スクリプトを作成することで、ある程度の露出が得られると思いました。しかし、私が見ているすべての投稿は、次のようなものを引用しています

「あなたはセキュリティの専門家ではないので、これを試みるべきではありません」

私はそれを試みるべきですか?もし私がお勧めしないのなら、あなたは何をお勧めしますか?

4

3 に答える 3

2

自分で何かを試すのは悪いことではありません。ログイン/登録コードが利害関係者を危険にさらす立場にない限り (金銭的に?)、その過程でセキュリティについて 1 つまたは 2 つのことを学ぶことができます。

appsec (アプリケーション セキュリティ) の世界を始めるためのドキュメントを次に示します。

XSS の脆弱性: https://www.owasp.org/index.php/Cross-site_Scripting_(XSS )

CSRF の脆弱性: https://www.owasp.org/index.php/Cross-Site_Request_Forgery_(CSRF )

SQL インジェクション: https://www.owasp.org/index.php/SQL_Injection

于 2012-10-22T21:43:42.617 に答える
1

ログインと登録のシステムは、おそらくセッション処理で実行できる最も基本的なことなので、間違いなく良い考えです。ただし、最初はユーザー名(パスワードなし)のログインのみを使用することをお勧めします。パスワードは扱いにくいビジネスであり、パスワードを保護しないと深刻な影響を与える可能性があります。ユーザー名のみを取得するログインシステムを試して、暗号化について学習したらパスワードを追加する方が安全です。

于 2012-10-22T21:44:02.760 に答える
0

「知るだけでは十分ではありません。適用する必要があります」 - ブルース・リー

適切なセキュリティ プラクティスは、実際の状況に適用することによってのみ習得できます。

セキュリティで保護されたログイン ページと登録ページの作成は、次のように簡単です。

  1. 適切な DB テーブル構造を取得します。たとえば、テーブル ユーザー列のユーザー名、名前、パスワード、電子メールなどです。

  2. ユーザー入力の取得

  3. ネイティブの mysql データベース ドライバーを使用している場合、SQL インジェクションを防ぐためにユーザー入力をサニタイズします。しかし、もっと良いのは、準備済みステートメント、MySQLi、または PDO などの抽象化レイヤーについて独学して、移植性を容易にすることです。

  4. パスワードをハッシュします。パスワードをプレーンテキストで保存しないでください ただし、パスワードをハッシュする前にまずソルトします。ハッシュ != 暗号化 に注意してください。ハッシュは実質的に元に戻すことができません (ただし、理論的には元に戻すことができ、Crc32 のように非常に衝突しやすいものもあります。ハッシュは、たとえばMD5SHA256SHA512、 Bcrypt のように強度の高い順に並べられます。

  5. 次に、これらの値を格納するクエリを作成します。ユーザー名列が一意に設定されていることを確認してください。2 人のユーザーが同じユーザー名を持つことはできません。

ログイン時:

- ユーザーとパスワードの組み合わせが正確であることを確認します。

- パスワードについては、登録時に元のパスワードを渡したのと同じソルト ハッシュ アルゴリズムを介して渡します。

-セッション変数を設定して、ユーザーを追跡し、オンラインであることを確認できるようにします。

于 2012-10-22T21:58:02.353 に答える