Project

General

Profile

Bug(バグ) #1344

The Parameter will be escape in the mail (メールに含まれるパラメータがエスケープされている)

Added by Mutsumi Imamura almost 9 years ago. Updated over 1 year ago.

Status:
Fixed(完了)
Priority:
Normal(通常)
Target version:
Start date:
2010-07-14
Due date:
% Done:

100%

3.6 で発生するか:
Yes
3.8 で発生するか:
Unknown (未調査)

Description

Overview (現象)

ニックネームに「<」や「'」などの記号が含まれると、送られてきたデイリーニュースのメールを表示した際に、HTMLエンティティ(&lt; &#039; など)に変換されている。
また、ニックネーム以外でもHTMLエンティティ変換される記号が含まれる場合、同様の現象が起こると思われる。

refs: htmlspecialchars
http://php.net/manual/ja/function.htmlspecialchars.php
出力される文字列がこの関数を"何度か"通っていると考えられる。

再現方法

  1. ニックネームを !"#$%&'<<picomu>>?|\-!"#$ にする
  2. このメンバーでデイリーニュースを受信するように設定しておく
  3. デイリーニュースタスクを実行する
  4. 送られてきたデイリーニュースのニックネーム部分を見ると
    !&quot;#$%&amp;&#039;&lt;&lt;picomu&gt;&gt;?|\-!&quot;#$ 
    

    となっている

再現バージョン

  • OpenPNE3.4.6-dev

他のバージョンでは未確認

Causes (原因)

メール本文はHTML形式でないのにも関わらず、エスケープ処理がされている。

Way to fix (修正内容)

メールテンプレートではHTMLのようにエスケープ処理を施す必要がない。

エスケープ処理を行っているのは sfViewParameterHolder クラスで、
sfView クラス内でこのインスタンスを生成する際に sfConfig の値を参照してエスケープの有無を決定している。

修正内容としては、sfView で生成された sfViewParameterHolder のインスタンスを、
結果を出力する前に sfViewParameterHolder::setEscaping(false) とする事で、エスケープ処理を行わないようにする。


Related issues

Related to OpenPNE 3 - Backport(バックポート) #1638: The Parameter will be escape in the mail (メールに含まれるパラメータがエスケープされている) Fixed(完了) 2010-07-14
Related to OpenPNE 3 - Backport(バックポート) #1639: The Parameter will be escape in the mail (メールに含まれるパラメータがエスケープされている) Fixed(完了) 2010-07-14

Associated revisions

Revision b3f33e6e (diff)
Added by Masato Nagasawa over 8 years ago

fixed escaping of the parameter is changed to disable. (fixes #1344)

Revision dcf9b079 (diff)
Added by Masato Nagasawa over 8 years ago

Revert "fixed escaping of the parameter is changed to disable. (fixes #1344)"

This reverts commit b3f33e6ecd9392756738032c7ea6eeea83b00c46.

Revision b25799b3 (diff)
Added by Masato Nagasawa over 8 years ago

fixed fixed escaping of the parameter is changed to disable using setEscaping(). (fixes #1344)

History

#1 Updated by Minoru Takai almost 9 years ago

  • Subject changed from ニックネームに「<」や「'」などの記号が含まれると、デイリーニュースのメールで文字化けてしまう to デイリーニュースのメールで、ニックネームなどに「<」や「'」などの記号があるとHTMLエンティティ変換されてしまっている

#2 Updated by Rimpei Ogawa almost 9 years ago

  • 3.6 で発生するか set to Yes

#3 Updated by Masato Nagasawa almost 9 years ago

  • Status changed from New(新規) to Accepted(着手)
  • Assignee set to Masato Nagasawa
  • Target version set to OpenPNE 3.7.0

メールはHTMLではないので、そもそもエスケープする必要性がないと思います。

#4 Updated by Masato Nagasawa over 8 years ago

  • Subject changed from デイリーニュースのメールで、ニックネームなどに「<」や「'」などの記号があるとHTMLエンティティ変換されてしまっている to メールに含まれるパラメータがエスケープされている

#5 Updated by Masato Nagasawa over 8 years ago

  • Subject changed from メールに含まれるパラメータがエスケープされている to The Parameter will be escape in the mail (メールに含まれるパラメータがエスケープされている)

#6 Updated by Masato Nagasawa over 8 years ago

  • Status changed from Accepted(着手) to Pending Review(レビュー待ち)
  • % Done changed from 0 to 50

更新履歴 b3f33e6ecd9392756738032c7ea6eeea83b00c46 で適用されました。

#7 Updated by Shogo Kawahara over 8 years ago

  • viewクラス生成前後で、sfConfig の "sf_escaping_strategy" を操作している意図が非常に分かりにくいです。
  • viewクラスからattributeHolerを取得して、それに対して、->setEscaping(false) するのが良いでしょう。

これは古いメソッドですが、

  • opMailSend::setGlobalTemplate() も同様にな対応を取るべきです。

#8 Updated by Shogo Kawahara over 8 years ago

  • Status changed from Pending Review(レビュー待ち) to Rejected(差し戻し)

#9 Updated by Masato Nagasawa over 8 years ago

  • Status changed from Rejected(差し戻し) to Pending Review(レビュー待ち)

更新履歴 b25799b3e548d427ed77c3052406f599dbfbaedc で適用されました。

#10 Updated by Masato Nagasawa over 8 years ago

更新履歴 dcf9b07946e14f60f06c7635b43242ec00984add で適用されました。

#11 Updated by Shogo Kawahara over 8 years ago

  • Status changed from Pending Review(レビュー待ち) to Pending Testing(テスト待ち)
  • % Done changed from 50 to 70

#12 Updated by Yuma Sakata over 7 years ago

  • Status changed from Pending Testing(テスト待ち) to Fixed(完了)
  • % Done changed from 70 to 100

テストOKです。

Also available in: Atom PDF