2

次のphpコードを使用してmysqlデータベースに接続します。

$hostname = "hostname.com";
$database = "dbtest";
$username = "admin";
$password = "pass123";
$connect = mysql_pconnect($hostname, $username, $password) or trigger_error(mysql_error(),E_USER_ERROR);
mysql_select_db($database);

このコードは、データベースへのアクセスを必要とするすべてのphpスクリプトに含まれているconnect.phpという接続ファイルに配置されます。

ハッカーがconnect.php(http://www.domainname.com/connect.php)のURLを取得した場合、データベースをハッキングすることは可能ですか。PHP接続コードがハッカーを助けないようにするにはどうすればよいですか?または、データベースに接続するための最も安全な方法はどれですか?

4

5 に答える 5

8

Webサイトのドキュメントルート内にコードを含むPHPファイルを含めることは絶対にしないでください。ドキュメントルートにあるのはブートストラップファイルだけで、これを介してすべてのリクエストをルーティングする必要があります。そのファイルがサイトのドキュメントルート内にあり、何らかの理由でWebサーバーがファイルを解析しない場合、ファイルはそのまま表示されます。

mysql_*また、新しいコードに関数を使用しないでください。それらはもはや維持されておらず、コミュニティは非推奨プロセスを開始しています。赤いボックスが表示されますか?代わりに、プリペアドステートメントについて学び、 PDOまたはMySQLiのいずれかを使用する必要があります。決定できない場合は、この記事を選択するのに役立ちます。あなたが学びたいのであれば、ここに良いPDOチュートリアルがあります。

また、常に暗号化された接続(SSL)を使用してください。

ルーティングの例ディスパッチパターンについては、これを参照してください。基本的に何が起こるべきかです:すべての要求はindex.phpドキュメントルートの下のファイルによって処理されます。ブートストラップはindex.php、ドキュメントルート外の別のファイルをすべて(つまり、呼び出す(含む))します。このファイルはリクエストのURLをチェックし、現在のURLに属するファイルを見つけて実行します。

于 2012-07-27T11:44:47.363 に答える
1

通常、ハッカーがファイルへのURLしか持っておらず、生のソースコードが公開されないようにウェブサーバーが適切に構成されている場合、これは構成データに関して安全である必要があります。

このような構成ファイルをWebルートディレクトリの外に配置すると、セキュリティを強化できます。

于 2012-07-27T11:45:13.180 に答える
1
  1. 関数を使用しないでくださいmysql_*
  2. Webサーバーのドキュメントルートのディレクトリの下にある別の場所にファイルを配置します。
  3. IPアドレスのリストからの接続のみを許可するようにWebサーバーを構成します。
  4. 常にSSL(Secure Connection)を使用することを検討し、SSLのみを使用するようにデータベースを構成してください。
于 2012-07-27T11:47:09.957 に答える
0

誰かがこのページにアクセスしても何も起こりません。

mysql_*それ自体は安全ではありませんが。

于 2012-07-27T11:43:59.263 に答える
0

安全です。DocumentRootの外部にファイルを保存することもできます。

于 2012-07-27T11:49:01.140 に答える