• ベストアンサー

メールの改行除去?

PerlやPHPなどでメールを送信するプログラムについてです。下記のページにセキュリティについて書いてあるのですが、具体的な意味が分からず困っております。 【送信されてくるデータの改行コード「\n」を削除、もしくは、エスケープせず、そのままsendmailに渡している】 http://sb.xrea.com/showthread.php?t=10113 <br>タグを\nに置換しなければならないという事でしょうか? ・・・意味を取り違えているかと思いますので、ご教授下さい。 よろしくお願いします。

質問者が選んだベストアンサー

  • ベストアンサー
  • sakusaker7
  • ベストアンサー率62% (800/1280)
回答No.1

こういうことはあまり明確に書くのは問題があるみたいなのでちょっと推測が混じりますが、 多分メールのヘッダ部分に細工を加える余地があるかないかだと言うことだと思います。 たとえば宛先が入力可能になっているとして、 hogeho@example.co.jp, victim1@example.com, ... とカンマで区切られて入ってきたりしたらどうなりますか? 入力をきちんとチェックしないでsendmail に流すと、列挙した宛先すべてに メールが行くことになり、そのフォームはspma送信の踏み台と化します。 改行のほうも同じで、宛先入力に hanamogera@example.co.jp とあったら TO: hanamogera@example.co.jp というデータが組み立てられることになると思いますが、 宛先入力のところに改行があることをチェックしていないと、 改行のあとにヘッダコマンドを置かれてこれまたspamの踏み台にされる 可能性があります(ちょっとぼかしてますごめんなさい)。 これに限らず、セキュリティ関係の本を何冊か読んでみるといいかもしれません。

mynamy373
質問者

お礼

やはりシビアな問題なのですね・・・ ネット上で調べたりフリーCGIのソースを眺めたりとしましたが、ピンと来なくて質問させていただいた次第です。 ご返答いただきありがとうございました。

関連するQ&A

専門家に質問してみよう