1

エラー ログに次のようなエラーが表示され続けます。

[12-Dec-2012 10:19:11] PHP Warning:  mysql_real_escape_string() [<a href='function.mysql-real-escape-string'>function.mysql-real-escape-string</a>]: Access denied for user 'jcummings'@'localhost' (using password: NO) in ...<rest of the code here has been obfuscated>...

私が疑問に思っているのは、「jcummings」(この場合) またはそこに表示されるユーザー名です。いくつかの異なるユーザー名が表示されましたが、それは自分のサイトに関連付けられたユーザー名ではなく、データベースの変数でも、サイト上の何かでもありません。これは、サイトでエラーが発生した場合にのみ発生し、サイト (さまざまなサイトをテストしているサブフォルダー) に基づいてさまざまな名前が付けられ、さまざまな時期にさまざまな名前が付けられます。

これは私が心配する必要があることですか、それとも php サーバーが一時的な名前をスローしているだけですか?

編集:私のコードは次のようになります:

$var = $_GET['var'];
$var = stripslashes($var);
$var = mysql_real_escape_string($var;

//connect
mysql_connect("$host", "$username", "$password") or die ("Could not connect");
mysql_select_db("$dbName") or die ("Could not select DB");  

//query
$sql = "SELECT * FROM $dbTable WHERE tarVar = '$var'";
$result = mysql_query($sql);

したがって、接続が確立されるまで、実際にはアクションを呼び出していません。サイトは今のところ問題なく動作しています。コピーしたエラーはその日の早い時間からのものでした。

4

2 に答える 2

8

mysql_real_escape_string()MySQL サーバーへの接続を開く前に呼び出していると確信しています。パラメータとして必須ではありませんmysql_real_escape_string()が、MySQL 接続が必要です。

ドキュメントから:

オプションのパラメーター「link_identifier」:
MySQL 接続。リンク識別子が指定されていない場合、mysql_connect() によって開かれた最後のリンクが想定されます。そのようなリンクが見つからない場合、引数なしで mysql_connect() が呼び出されたかのようにリンクを作成しようとします。接続が見つからない、または確立されていない場合は、E_WARNING レベルのエラーが生成されます。

ログ エントリの "in ..." の後のファイルを確認します。これらのファイルはアプリケーションの一部ですか? それらは変更されていますか?それとも、攻撃者によってアップロードされたものですか?

于 2012-12-12T18:03:37.837 に答える
1

mysql_connect()これは、この関数を使用する前に、MySQL データベースに接続する必要があることを意味します。の資格情報mysql_connect()が間違っている可能性があります。

于 2012-12-12T18:01:56.070 に答える