1

HTMLパーサーを使用してサードパーティのサイトからデータを取得し、必要な情報をMySQLに挿入しています。たまたま、多くの情報にアポストロフィが含まれています。問題は、SQLクエリの場合は次のとおりです。

INSERT INTO table (column) VALUE ('".$value."')

$variableにアポストロフィが含まれている場合、クエリは中断されます。情報が多すぎて、すべてを手動で挿入することはできません。それは完全に時間がかかりすぎるでしょう。このクエリを機能させるための提案はありますか?

4

2 に答える 2

4

これは典型的なSQLインジェクションの欠陥です。の値が$valueユーザーによって制御されている場合、ユーザーは基本的に今すぐに何でもできます。スクレイプされた文字列の引用符は、SQL文字列内の引用符で囲まれた環境から抜け出すため、任意のSQLコマンドを実行できます。

簡単な答えは、を使用することmysql_real_escape_stringです。

もちろん、これには必須の「mysql_*は非推奨です。mysqliまたはPDOを使用してください」という部分もあります。

于 2012-10-11T08:44:09.953 に答える
1

つまり、クエリは。で脆弱ですSQL Injection。`PHPにタグを付けたので、より良い使用PDOまたはMySQLi拡張。

この記事を読むのに時間をかけてください:PHPでSQLインジェクションを防ぐための最良の方法は?

于 2012-10-11T08:44:37.520 に答える