PHP

PHP

【PHP5.3】マジッククオートの設定は、オフにしておきましょう!

マジッククオートについて

最近はPHP7が主流になってきていますが、
PHP5.3もまだまだ多くのサーバで動いています。

PHP5.3バージョンを使っているサーバでフォームなどを組んでいると発生するのが、
マジッククオートの問題です。

マジッククオートが有効になっている場合、
シングルコーテーション(’)ダブルコーテーション(”)などが自動でエスケープされてしまいます。

エスケープとは、
シングルコーテーションやダブルコーテーションの様なそのままではブラウザの画面に表示できないような特殊な文字に、
バックスラッシュ(¥)を付与することで、
表示できるようにすることです。

自動でエスケープしてくれるのであれば、
開発者の手間が省けて助かるはずなのですが、
困ったことに、
意図しない場面でもバックスラッシュ(¥)が勝手に付与されて困ってしまうことがあります。

なので、マジッククオートは、出来ればオフにしておいて、
エスケープ処理は必要に応じて自分で設定するのがおすすめです。

と言っても、
既に稼働済みのサーバのphp.iniを変更は恐いですし、
そもそも共用サーバだと勝手に設定を変更することが出来ない場合も多いです。

なので、
マジッククオートは無効にしておいて、
エスケープ処理はプログラムサイドで対応しましょう。

もしくは、.htaccessを使って対応することも可能です。

ということで、
今回は、
マジッククオートがオンになっていないかの確認方法
と、
マジッククオートがオンになっている場合の対応方法
についてまとめておきます。

マジッククオートの確認方法

マジッククオートの設定が、
現在オンになっているのか?
それとも、
オフになっているのか?
は、
get_magic_quotes_gpc()関数で確かめることができます。

PHPのスクリプトに、
echo get_magic_quotes_gpc()
と記述して、
ブラウザ上からアクセスしてみて下さい。

「1」が返って来れば、オンになっています。

または、
お馴染みのphpinfo()でも確認できます。

magic_quotes_gpc」の項目を探してみて下さい。
「on」になっていれば、マジッククオートが有効になっています。

マジッククオートの無効化

stripslashes()関数で、バックスララッシュを取り除く

マジッククオートがオンになってる場合、
以下の様なコードで無効化が可能です。

.htaccessを使ってマジッククオートをオフにする

マジッククオートの設定は、.htaccessを使ってオフにすることも可能です。

方法は、以下の記述を.htaccessに追記するだけです。
php_flag magic_quotes_gpc On

最後に

マジッククオートの設定は、PHP5.3.0で非推奨になり、
PHP7.0.0で削除されましたが、
まだまだ多くのサーバでPHP5.3.0が現役で活躍しています。

マジッククオートがオンになっていると、
シングルコーテーションやダブルコーテーションが勝手にエスケープ(バックスラッシュ付与)されてしまうので、
対応には注意しましょう。

プログラム側で対応するか、
.htaccessを使って機能をオフに出来るので、
こちらの記事を参考にして頂ければと思います。

関連記事

  1. PHP

    PHP

    PHP クッキー(Cookie)にセキュア属性(secure属性)を付与

    セキュリティの専門家の方からの指摘で、本日は、以前組んだシステ…

  2. PHP

    PHP

    PHPExcel エクセルをダウンロード

    PHPExcelを使ってエクセルファイルを出力する場合、ファイルを…

  3. PHP

    PHP

    UbuntuサーバからPHP5.6を完全に削除

    UbuntuサーバにインストールしているPHP5.6を訳合ってアン…

  4. データベース

    PHP

    【phpPgAdmin】php-pgsqlをインストール

    phpPgAdminをインストール後に、ブラウザから管理画面にアク…

  5. PHP

    PHP

    mb_strlen()関数の注意点!!

    PHPでバイト数ではなく文字数を取得したい場合、mb_strlen…

  6. PHP

    PHP

    PHP脆弱性対応 フォームの改行コード、復帰コードの取り扱い

    サイト構築時、大概の場合お問合せフォームを設置すると思いますが、…

最近の記事

  1. PHP
  2. Python
  3. Python
  4. PHP
  5. 宅建
PAGE TOP