2011-02-05 14 views
0

私がネット上で見つけたものはすべて、データベースに接続するためのデータベースユーザとパスワードを提供するように指示します。PHPからMySQLデータベースに接続

いつものようにパラノイドなので、私はこれが好きではありません。なぜなら、PHPソースを持つ誰かがデータベースにログインしてデータに悩む可能性があるからです。これはデータベースにアクセスする唯一の方法ですか?

コンテキスト:http://www.cyberciti.biz/tips/facebook-source-code.html

+0

セキュリティの必要性を認識して、それを失うことは絶対にありません。 :o) –

答えて

1

PHPはインタプリタによって解析され、HTMLだけが出力されますので、あなたはPHPソースのホールドを取得する方法がないだろうと恐れて(あなたが適切に設定されていることを推測する必要はありませんPHPソースをダウンロードできないようにします)。

外部からMySQLサーバへのすべてのトラフィックをブロックします。 localhostのみがそれを使用できるようにします。

+0

とFTP経由でアクセスできるファイルを保護してください – mauris

3

はい、それは唯一の方法です。また、妄想として、ログインとパスワードの知識は十分ではありませんが、正しいホストからログインする必要があることを知っておくべきです(この資格情報でログインすることが許可されています)。

また、あなたのソースを盗んで、コードに脆弱性があることを恐れず、ハッカーがログインやパスワードなしでもデータを盗むことができるのはなぜですか?この場合、編集的には全くプログラムしないほうがよいでしょう。

0

かなり良くありませんが、あなたあなたが何らかの形で接続情報を提供する必要がありますが、あなたに制限された権限を持っているあなたのMySQLユーザーを設定することでリスクを軽減することができますphp.iniの http://www.php.net/manual/en/mysql.configuration.php#ini.mysql.default-password

+3

誰かがphp.iniにアクセスするとどうなりますか?あなたは彼が妄想的であることを忘れた。 – zerkms

0

それを指定しますできるだけ。したがって、必要な場合にのみ読み取り/挿入アクセスを許可し、127.0.0.1からの接続も許可するようにユーザーホストを設定できます。

http://www.zend.com/en/products/guard/のような市販の難読化製品もありますが、これは興味深いかもしれません。文字列の暗号化を含めるかどうかはわかりません。

1

それは唯一の方法ではありませんが、世界のほとんどの方法(99.999%のような)はそれを行います、そして私が知る限り、ウェブプログラマーの100%。

これを考慮してください:パスワードがどこかのソースにハードコードされていると、どうして迷惑でしょうか?アカウントをパスワードなしで作成し、Webサーバーへのアクセスを制限するのはなぜでしょうか?何人かは言うかもしれない、「oh nooeses !!それをしないで!しかし、もう一度私は尋ねる、違いは何ですか?とにかくそこには開かれているセキュリティホールはありますか?

実際のセキュリティの問題は、実際にはSQLインジェクションから身を守ることです。そのワイドオープンアカウントがあれば、あなたが脆弱になります:

1)あなたは、ユーザーが行うことになっていない何かをするために利用することができ、コードでグリッチを持っている、または

2)彼らはあなたのDBサーバをだますことができますSQLインジェクションを介してコードを実行する。

SQLインジェクションは、あなたを守る大きなバグです。

二次的な保護もあります。たとえば、ほとんどの人は、ユーザを含む「ユーザ」テーブルと、ユーザにパスワードを電子メールで送信する場合に必要となるプレーンテキストパスワード(残念なことに大抵の場合)について、不自然です。

SQLインジェクションの保護を逃してしまった場合や、そうでないと思ったことをあなたのプログラムに行なわせるための脆弱性がある場合に備えて、このテーブルの第2レベルの保護を設定することができます。それをまったく参照するか、それに書いてください。次に、「addUser(username、password)」と「checkPassword(username、password)」という2つのストアドプロシージャを記述します。これは、より敏感なデータの周りに複数のレベルのセキュリティを持つ「深いセキュリティ」の例です。