私は、顧客がジョブ番号に対応するフォルダを作成し、そのフォルダのカスタムユーザ名/パスワードを割り当てることを許可する管理ページを必要とするPHPプロジェクトを持っています。その後、顧客がそのフォルダにログインしてファイルをアップロード/ダウンロードするために使用する別のページが表示されます。認証を処理する最良の方法は何ですか?私の最初の考えは、フォルダ内のテキストファイルにユーザー名とパスワードを入れて、サーバーが.htaccessを使ってページを提供できないようにすることでした。私はそれを安く簡単に保つために、プロジェクトのデータベースに触れないようにしています。誰にどのようにこれを処理するためのよりよい提案がありますか? FYI、これは高いセキュリティアプリケーションではありません。私は、顧客がSSL証明書を発行することさえ疑うでしょう。フォルダごとのカスタムユーザの資格情報
答えて
無料でCA証明書でSSL証明書を取得できます。
それ以外に、.htaccess + .htpasswdを使用することは合理的なオプションです。
.htpasswdではパスワードをハッシュする必要はありませんか? PHPからファイルを生成するには? (私は詳細を見ていません。.htpasswdファイルを生成するためのPHP関数が組み込まれている場合は謝罪してください。または私の前提に誤っています) –
Nevermind。簡単なGoogle検索で答えが見つかりました... http://www.htaccesstools.com/articles/create-password-for-htpasswd-file-using-php/ –
> What's the best way to handle the
> authentication? My first thought was
> to put the username and password in a
> text file inside the folder and
> prevent the server from serving the
> page using .htaccess. I'm trying to
> avoid touching a database for the
> project as I want to keep it cheap and
> simple.
OpenIDすべてのあなたの問題(ほとんど)への答えです:
- あなたは店のユーザー名とパスワード=> BADを持っていない(securilyパスワードを保存することは非常に困難な概念です)。
- OpenIDがあなたの認証を処理するので、データベースに触れる必要はありません。
- openIdには非常にやさしいライブラリがあり(LightOpenIDは非常に親切です)、無料(オープンソース)です。
我々は最終的に stackoverflowのコードになります で作業を続けるように、我々は遅ればせながら、我々は上のユーザ名とパスワードの供給過剰 に貢献するだろう を実現ウェブ。 私は50のオンラインログインを持っており、私は のいずれも覚えていません! を追加すると、 の最初のセットが となることはほとんどありません。
あなたはopendID(Facebook Connectなど)を使用して認証を行うべきだと思います。私はstackoverflow.comのような認証を扱う小さなプログラムを作成しました。 http://westerveld.name/php-openid/で私の簡単なウェブホスティングでこれをデモすることができます。 https://github.com/alfredwesterveld/php-openidにコード(LightOpenIDを使用しています)をダウンロードできます。
> I'm trying to avoid touching a
> database for the project as I want to
> keep it cheap and simple.
私が正しく行われていない場合、把握することは、あなたのコードベースが難しくしようとしているので、あなたが感動データベースを避けたいだろう理解しています。しかし、データベースを使用して規模を拡大することは必須であり、切り替えが必要なときにこのコンセプトをコード化しないと(システムがもう処理できないため)、メンテナンスの難しさがあります。
また、データベースはI/Oの小さな細部を抽象化するため(データベースを使用するとコーディングが容易になります)、コーディングに役立ちます。
SQLiteはそのソフトウェアライブラリです:PHPは(> = 5)/あなたのためSQLiteをインストールしコンパイルしないと、あなたはそれを使用することができますので、幸いなことに、あなたは、MySQL/PostgreSQLのようなフル屈曲データベースを使用する必要はありません は、自己完結型のサーバーレス構成のゼロコンフィギュレーション トランザクション型SQLデータベースエンジン を実装しています。 SQLiteは、世界で最も広く配備されたSQL データベースエンジンです。 SQLiteのソースコードは で、公開されている です。
コードからデータベースを抽象化するには、PDOについてSQLiteに接続する方法を学ぶ必要があります。このintroductionは正しく(グッドリード!)これを正しく行う方法を学びます。
これらの部品は特に重要である:
Connecting
Prepared Statements
SQL-注射を防ぐために。
次に、実装をSQLiteからMySQLに変更する場合は、new PDO
の代わりにSQLiteの代わりにMySQLを使用するように簡単になります。
> What's the best way to handle the
> authentication?
OpenIDの認証を処理し、authorizationに返さOpenIDのURLを(ユニーク)を使用してみましょう。あなたはこの情報をあなたの望むデータベースの中に簡単に保存することができます。
> prevent the server from serving the
> page using .htaccess
の.htaccessは、特定のファイルへのアクセスからユーザーを防ぐために使用することができます。可能であれば、Webブラウザにファイルが提供される場所以外の場所にこれらのファイルを置くことはさらに簡単です。もちろん、ユーザーがそのファイルにアクセスしてダウンロードするようにしたい場合は、その場所に入れておく必要がありますが、承認を行う必要があります。
> I doubt the customer will even spring
> for an SSL certificate.
パスワードの盗難は、私は確かにまったく好きではない何かです。過去に私がセキュリティを認識していなかったとき、私はすべてのサイトに1つのパスワードを使用しました(もっと覚えていることは難しい)。Lifehacker got hacked私は重要なサイトのパスワードを少なくとも変更する必要がありました。今、私はパスワードを安全に保管するために優れたLastpassを使用しています。私はすべてのサイトに一意のパスワードを作成します。 SSLを使用しない場合、情報(パスワード)を盗むことは、blacksheepのように簡単に行うことができます。 しかし、幸いにもOpenID(Google、MyOpenID、Yahoo!などの適切なOpenIDプロバイダ)を使用する場合、ほとんどの場合、認証はSSL経由で行われます。
- 1. WCFと合格ウィンドウの資格情報
- 2. AmazonS3Clientと資格情報
- 3. 資格情報の配列
- 4. Hudson svnの資格情報
- 5. WCFメッセージレベルセキュリティクライアントの資格情報
- 6. Paypal WPSの資格情報
- 7. JenkinsのNexus資格情報
- 8. ローカルの資格情報とクッキー
- 9. 最近のWindowsアップデートと資格情報
- 10. Perl WWW :: Mechanize資格情報
- 11. WCF +ユーザー資格情報
- 12. Silverlight with Windows資格情報
- 13. 資格情報プロバイダは、
- 14. Windows資格情報プロバイダ(C#
- 15. System.Net.WebRequestカスタム資格情報
- 16. WinSCPスクリプトファイルに共有フォルダの資格情報を含めます
- 17. WlxSASNotifyとWindows資格情報プロバイダ
- 18. Twitter4Jは、資格情報とキャッチエラー
- 19. WCFでの資格情報の推測
- 20. のPython GAE UrlFetchの資格情報
- 21. レポートビルダ2.0データソースの資格情報プロンプト
- 22. curlリダイレクトログイン資格情報の保護
- 23. ASP.NETからSQL Serverの資格情報
- 24. OAuth2クライアント資格情報フローの理解
- 25. カスタムWPFダイアログのWindows資格情報プロンプト
- 26. jdbc用のSQL Serverログイン資格情報
- 27. Jenkins Packer AWS資格情報の検証
- 28. iTune資格情報AlertViewの実装
- 29. 1つのポートとログイン資格情報に異なるアプリケーション、ポート、資格情報を作成する方法
- 30. Flaskにセッションごとに資格情報を安全に保存する方法
また、私はいくつかの有用な情報であると信じて以下の回答を提供しました。 – Alfred