0

PHP laravel フレームワークに次のようなコード ブロックがあることに気付きました。

if (get_magic_quotes_gpc())
{
    $magics = array(&$_GET, &$_POST, &$_COOKIE, &$_REQUEST);

    foreach ($magics as &$magic)
    {
        $magic = array_strip_slashes($magic);
    }
}

これをテストする方法がよくわかりませんが、これをすべてのページに含める start.php ファイルに入れると、魔法の引用符が処理されるので、心配する必要はありませんか?

編集:

laravel の array_strip_slashes は次のとおりです。

function array_strip_slashes($array)
{
    $result = array();

    foreach($array as $key => $value)
    {
        $key = stripslashes($key);

        // If the value is an array, we will just recurse back into the
        // function to keep stripping the slashes out of the array,
        // otherwise we will set the stripped value.
        if (is_array($value))
        {
            $result[$key] = array_strip_slashes($value);
        }
        else
        {
            $result[$key] = stripslashes($value);
        }
    }

    return $result;
}
4

2 に答える 2

1

あなたは示していませんがarray_strip_slashes、それが正しく機能すると仮定します-

はい、その関数は魔法の引用符の効果を元に戻す必要があります。魔法の引用符がオンになっていない場合、そのコードはまったく実行されません。

他の人も間違いなく指摘するので、単にそれらをオフにする方が良いです。残念ながら、一部の共有ホスティング環境では、それを行うのは困難です。せいぜい、コードはあなたがやけどをするのを防ぐでしょう。最悪の場合、歴史家が魔法の引用を振り返って私たちを笑うとき、将来のある時点で取り除くことができる無害な残骸の一部になるでしょう。

于 2012-09-15T19:25:45.993 に答える
0

これにより、魔法の引用符が削除されるという点で、魔法の引用符が「処理」されます。これは良いことです。それらをオフにする方がはるかに良いでしょう (PHP 5.3 では、デフォルトでオフになっているはずです)。

于 2012-09-15T19:23:08.540 に答える