可能性の重複:
Best way to stop SQL Injection in PHPフォーム/ URLからPOST/GET変数をサニタイズする最も良い方法は?
私はMySQLデータベースを使用すると、URLからフォームと変数を扱うPHPを使用してウェブサイトを作成しています。変数は、SQLクエリ文字列を動的に構築するために使用されています。だから私は誰もSQL注入などを試みていることを確認する堅牢なソリューションが必要です。私の友人は、実際に私はデータベースにアクセスするためにストアドプロシージャを使用する必要がありますが、これらを許しません。ここで
は、私が使用しているコードである(それはクラスの一部DBコマンドをラップするのです):この機能は、堅牢な十分...
public function Sanitize($Variable)
{
if(is_resource($this->ServerConnection))
{
$Variable = str_replace(";", "", $Variable);
if(get_magic_quotes_gpc())
{
if(ini_get('magic_quotes_sybase'))
{
$Variable = str_replace("''", "'", $Variable);
}
else
{
$Variable = stripslashes($Variable);
}
}
return mysql_real_escape_string($Variable, $this->ServerConnection);
}
else
{
$this->PrintError("The Sanitize function is not available as there is no server connection.");
}
}
...
ですか?私は他の何かをしなければならないのですか?
なぜパラメータ化クエリを使用していませんか? – dave4420
パラメータ化されたクエリとは何ですか?そのメリットは何ですか?たぶん私は、私は非常に長い間、SQLデータベースをオンラインで使用していないことを明らかにすべきです。 –
パラメータ化されたクエリを実行する場合は、PDOをチェックしてください。 http://php.net/pdo – rojoca