アプリ版:「スタンプのみでお礼する」機能のリリースについて

HTMLのテキスト画面に下記のような記号列をいれて、
"#'\
次画面でPOSTの値を表示すると、
\"#\'\\
になってしまいます。
DBに入れることを考えてはいるのですが、何かよい方法はないでしょうか?

A 回答 (1件)

php.ini の設定でマジッククオータ(magic_quotes_gpc)がオンになっていると


GPC(GET POST COOKIE)で値入力が行われた場合、' " \には
すべてバックスラッシュで自動的にエスケープされます。
これを回避するには
stripslashes()関数を利用するか
php.iniのmagic_quotes_gpcをFalseに設定してください。

しかし、これは安全装置のようなもので
特にSQL文を発行する際に'や"など(他にもあります。)の文字を
エスケープしてやらないとSQLインジェクションという脆弱性が生まれてしまいますので
十分注意してください。
(正規表現などによる入力値チェックも必要ですね。)


噂によるとkakaku.comの不正アクセスもSQLインジェクションでの
攻撃であるとも言われているようです。

※PHP4.2.3以前の場合はスクリプトの中にini_set("magic_quotes_gpc", 0)を挿入すると一時的に解除できます。


stripslashes()の例

<?

echo stripslashes($_POST['text']);

?>
    • good
    • 0
この回答へのお礼

ありがとうございます。無事にできました!!

お礼日時:2006/01/25 11:47

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!