2

私は次のようなものを持っているたくさんのファイルを持っています

1- mysql_query("update ... $_POST['foo'] ...");

それをこれに変えたい

2- $foo = mysql_real_escape_string($_POST['foo']);
3- mysql_query("update ... $foo ...");

各ファイルを開き、テキストを選択して$_POST['foo'](フォーム1-)キーの組み合わせを押してから、いくつかのツールを自動的に押すというアイデアがありました。

  • クリップボードに入れますmysql_real_escape_string($_POST['foo']);(2-を追加するため)
  • 1-のテキストを3-のテキストに置き換えます

次に、手動で書き込み$foo =、ctrl+vを押して2-を生成します

notepad ++とfingertextというプラグインを試して、マクロを作成しようとしていますが、成功しませんでした。

なにか提案を?

4

2 に答える 2

3
$_POST = sanitize($_POST);
$_GET = sanitize($_GET);

    function sanitize($input) {
        if (is_array($input)) {
            foreach($input as $var=>$val) {
                $output[$var] = sanitize($val);
            }
        } else {
            if (get_magic_quotes_gpc()) {
                $input = stripslashes($input);
            }
            $output = mysql_real_escape_string($input);
        }
        return $output;
    }

完璧ではありませんが、安全でないページがたくさんあり、それらをすべて安全にするための迅速な修正が必要な場合は、mysqlに接続した後にこれを配置できます。また、クエリに引用符で囲まれていない数値変数がある場合は、それらが数値であることを検証するか、クエリで使用する前に型キャストする必要があることに注意してください。mysql_real_escape_string()は、引用符で囲まれた値に対してのみ機能します(つまり、blah_column ='value'であり、blah_column = valueでは機能しません)。

于 2012-04-11T21:06:30.240 に答える
2

手で1つずつ交換してください。セキュリティを気にする場合は、自動置換を行わないでください。また、少なくともの代わりに関数を作成し、mysql_real_escape_string(()それを使用します。

 //just for example, better can be written
function db_escape($var, $type = 'string') 
{
   if($type == 'string') return mysql_real_escape_string($var);
   if($type == 'integer') return (int) $var;
   if($type == 'float') return (float) $var;
}
于 2012-04-11T21:08:17.887 に答える