なぜマジッククオートを使用しないのか
-
移植性
これがonであることを仮定すると、移植性に影響します。
この確認のためにget_magic_quotes_gpc()を
使用し、適切なコーディングを行ってください。
-
性能
エスケープされたデータが全てデータベースに挿入されるわけではないので、
このように全てのデータをエスケープすることは性能を低下させます。
単に(addslashes()のような)エスケープを行う関数を
実行時にコールする方がより効率的です。
php.ini-distはこれらのディレクティブを
デフォルトで有効にしていますが、
php.ini-recommendedはこれを無効にしています。
この推奨は主に性能面によるものです。
-
不便
全てのデータをエスケープする必要はないため、しばしば、
エスケープするべきではないデータまでエスケープされてしまう問題に
悩まされることになります。例えば、フォームからメールを送信する際、
emailの中に多くの \' が含まれることになります。
これを修正するために、
stripslashes()を大量に使用することが必要と
なる可能性があります。