BugTrackでの投稿で"が\"に化ける†
- ページ: BugTrack
- 投稿者: reimy
- 優先順位: 重要
- 状態: 完了
- カテゴリー: BugTrack
- 投稿日: 2002-06-29 (土) 17:58:27
- バージョン:
メッセージ†
BugTrackでの投稿でダブルクォーテーションにバックスラッシュがくっついてしまいます。バックスラッシュもバックスラッシュ2つになってしまいます。
(例)
$string = \"test\\n\"
この問題、ほかのプラグインでも起こる可能性があることが分かりました。
PHPでは、magic_quotes_gpcがonになっていると、' " \ NULLにバックスラッシュが付く仕様らしいです。
本体ではinit.phpのはじめの方にあるんですが、
if(get_magic_quotes_gpc())
{
if($get["page"]) $get["page"] = stripslashes($get["page"]);
if($post["page"]) $post["page"] = stripslashes($post["page"]);
if($get["word"]) $get["word"] = stripslashes($get["word"]);
if($post["word"]) $post["word"] = stripslashes($post["word"]);
if($post["msg"]) $post["msg"] = stripslashes($post["msg"]);
}
としているようです。
同様の問題が、comment.inc.phpの名前欄でも起こっていました。
なんかここですべてのバックスラッシュを取ってしまってもいい気がするんですが・・・・
- そろそろ、直さないとなー。月曜日にでも。 -- ゆう 2002-06-30 (日) 01:35:57
- フォームメールプラグインや掲示板プラグインでも同じ事がおこりますねー。 -- ゆう 2002-07-01 (月) 20:52:10
- ガーン。プラグインのメンテナンスしてないからなぁ…。 (^^; -- kawara 2002-07-01 (月) 20:53:58
- あ、うちもonだ。やばい -- reimy 2002-07-01 (月) 21:32:29
- magic_quotes_gpc は、RDBMS使わない環境では邪魔以外のなにものでもないので、デフォルトでOFFになっていると思ってましたが、、 -- seagull 2002-07-01 (月) 21:33:39
- PostgreSQLとMySQLが入ってるからonになってるんだろうなあ… -- reimy 2002-07-01 (月) 21:46:22
- んじゃinit.phpで全部stripしちゃいますか。 -- ゆう 2002-07-01 (月) 23:25:12
- 受け取ったパラメータをなんでもかんでも処理してると、DoSの的になる可能性もありますが、まぁ大丈夫でしょう。 -- seagull 2002-07-01 (月) 23:37:56
- DoS?どうしてですか? -- ゆう 2002-07-01 (月) 23:53:18
- 使いもしないゴミ引数を大量に送りつけられて、ひどい目にあった事があるので。stripslashes位なら問題ないでしょうが、strip前後の文字列がメモリに格納される事を思うとちょっと考えちゃいます。 -- seagull 2002-07-01 (月) 23:59:32
- そもそもGETやPOSTの値は$get, $postにコピーされているんでメモリ使用量はかわりませんよー。ちょっと重くなるかもしれませんが。 -- ゆう 2002-07-02 (火) 00:08:33
- 修正版はこれです。明日コミットしますね。 -- ゆう 2002-07-02 (火) 00:29:26
根本的に修正することになったようですので"今さら"ですが、
comment.inc.phpのCVS 1.4→1.5 での修正部分の先頭行が
if(get_magic_quotes_gpc() {
となっていますが、
if(get_magic_quotes_gpc()) {
のミスだと思います。-- reimy 2002-07-02 (火) 01:48:05
- ん?それだとエラーになるはずですが... -- seagull 2002-07-02 (火) 01:53:54
- うーん、またミス。すんません、っていうかこの変更取り消しですね・ -- ゆう 2002-07-02 (火) 02:21:08
- とりあえず、commentプラグインの修正箇所を元に戻して、ついでに.htaccessファイルでphp_flag magic_quotes_gpc offしておいた。 -- reimy 2002-07-02 (火) 02:41:46
- CVSに取り込みました cvs:init.php cvs:plugin/comment.inc.php -- ゆう 2002-07-02 (火) 10:31:50