0

私は自分のウェブサイトのデザインを提供する予定であり、誰かが管理しやすいブログに興味がある場合 (または、自分で新しい投稿用に新しい html ファイルを作成したくない場合)、このシンプルなログイン/ブログ システムを使用します。追加で提供します。

主な目的は、パスワードを入力することで 1 人のユーザーのみがログインできるようにし (ユーザー名は変更できません)、いくつかのアカウント設定 (表示名、アバター、バイオ) を編集したり、新しいページや投稿を作成したりできるようにすることです。新しいコンテンツをウィンドウに書き込みます。これは、登録フォームのない非常にシンプルなシステムであると想定されています。これは、私のデザインを購入することを選択するすべてのクライアントに提供したいフレームワークです。

ログインシステムは非常にシンプルなので、認証はほとんど必要ないと言っていいでしょう - パスワードの入力 (+ ユーザーが入力するその他のフォーム、たとえば、新しい投稿のコンテンツ) だけです。したがって、基本的には、次の機能が必要です: trim()htmlspecialchars()mysql_string_escape()、正規表現とユーザー セッションで有効な文字をチェックします (ちなみに、ユーザーが 1 人しかいないサイトでもユーザー セッションは必要ですか? )。このような単純な Web サイトには他に何が必要ですか? 自己署名 SSL 証明書について考えていましたが、セキュリティ警告が表示されます。そのような状況でも必要ですか?

このシステムは、私が取り組んでいるすべての HTML/CSS デザイン プロジェクトで再利用されるため、個人の Web サイトを運営したいだけの人のために Web サイトと共にこのフレームワークを提供する予定なので、今決定する必要があります。 /blog ワードプレスのことをすべて学ばずに。

Web サイトを暗号化する必要があることはわかっていますが、ここで必要な暗号化はパスワードだけなので、何を使用すればよいですか?

4

4 に答える 4

3

顧客のログイン パスワードをプレーンテキストで送信する必要がない場合は、SSL 証明書が必要です。適切な証明書を購入したくない場合は、(前述のように) 自己署名されたものを使用し、顧客が実際にログインする前に証明書の情報を確認するように指示できます。https セッションを開いたら、それを開いたままにして、ユーザーが相対的なセキュリティで作業を行うのはなぜですか?

于 2012-05-08T12:22:43.570 に答える
2

ログインできるユーザーが 1 人だけであると思われる場合は、すべての管理用のものを別のフォルダーに置き、そのフォルダーをパスワードで保護することができます。.htaccess

.htaccessファイルでこれを使用します

AuthUserFile /full/path/to/.htpasswd
AuthName "Please Log In"
AuthType Basic

これ.htpasswdは、ユーザーのパスワードを保存するファイルです。

詳細については、 http ://www.addedbytes.com/lab/password-protect-a-directory-with-htaccess/ を参照してください。

于 2012-05-08T12:18:03.933 に答える
1

必要なセキュリティのレベルは、保護しているものの価値と同様に、メカニズムの複雑さとはあまり関係がありません。

これをサービスとして提供している場合、顧客が作成したWebサイトをハッカーに乗っ取られるような弱い認証システムはおそらく必要ないでしょう。転送中のユーザーパスワードを暗号化しないと、ハッカーの生活が非常に簡単になります。スターバックスにセットアップし、WIFIをクラックし、カトマーがログインするのを監視し、ハッカーを引き継ぐだけです。 Webサイト。したがって、SSL証明書を使用してください。自己署名はデータを保護しますが、セキュリティ警告につながります-適切な証明書に飛び散ります。

一般に、ユーザーは自己署名証明書を信用しない権利があります。これは、(かなり洗練されていない)ハッカーがあなたを攻撃する可能性があるためです。たとえば、StackOverflow.comユーザーの資格情報を盗む場合は、ドメインstack0verfl0w.comを登録し、ログインページに自己署名証明書を発行します。ユーザーはその証明書を見て、(偽の)ドメインと一致し、自己署名証明書の受け入れに慣れている場合は、ハッカーのサイトに詳細を入力します。

したがって、はい、自己署名証明書を使用できます。これによりWebトラフィックが暗号化されますが、ブラウザーのセキュリティ警告を無視するようにユーザーをトレーニングすることはお勧めできません。「自己署名」の定義は、どこにも登録されていないということです。

次に、パスワードをプレーンテキストで保存しないでください。これを行う一般的な方法は、一方向ハッシュを使用してパスワードを保存することです(PHPにはこれが組み込まれています)。ハッカーがデータベースを盗むことができたとしても、ハッシュ関数は一方向です。プレーンテキストのパスワードを取得する(簡単な)方法はありません。ユーザーがログインするとき、同じアルゴリズムを使用してパスワードをハッシュし、データベース内のハッシュが一致する場合は、ユーザーをログインさせます。

第三に、認証に既成のフレームワークを使用することを検討してください。http://hybridauth.sourceforge.net/index.htmlはあなたの要件に合っているようです。一般に、ユーザーには期待があり、カスタムコードを介してそれらの期待に応えるには費用がかかり、エラーが発生しやすいため、この種の既製のソリューションを使用するのが最善です...

ライセンスは少し暗い芸術ですが、一般的に、オープンソースフレームワークは非常に寛大な要件に従って再配布できます(通常、オープンソースコンポーネントを含めていることを人々に伝える必要があります)。

于 2012-05-08T12:29:25.687 に答える