Bug(バグ) #1635
closedSNS名称変更で入力した値がエスケープされていない
100%
Description
■バグ概要¶
SNS名称変更(pc_backend.php/sns/term)で入力した値がエスケープされていないため、pc_frontendの表示が崩れる
■再現手順¶
1)SNS名称変更(pc_backend.php/sns/term)を表示
2)アクティビティ(pc)に<script>alert("alert");</script>を入力して、編集ボタンを押す
3)pc_frontendのマイホームを表示し、スクリプトが動作する事を確認
■環境¶
OS: Mac OSX
ブラウザ: Firefox3
■仕様¶
入力した文字がエスケープされる
■修正内容¶
SnsTermモデルが文字列をを出力する際に呼ばれるメソッド(__toString())の最後にescapeを実装しました。
Updated by Kousuke Ebihara over 14 years ago
- Target version set to OpenPNE 3.7.0
- 3.6 で発生するか set to Yes
Updated by Itsuro Tajima over 14 years ago
- Status changed from New(新規) to Accepted(着手)
Updated by Itsuro Tajima over 14 years ago
SNS名称設定は、通常連想配列形式(ex:$op_term['community'])でアクセスしますが、これの実態はオブジェクトのため,連想配列形式でのアクセスはマジックメソッドによって行われています。これにエスケープを行うラッパーを適用すると、その部分が正常に動作しなくなる、というのが根本問題です。
Updated by Itsuro Tajima about 14 years ago
↑は間違いで、ArrayAccessの実装がDecoratorに反映されないのが問題です。
本来ならArrayのインタフェースに対応しており、なおかつObjectのように振る舞うDecoratorが望ましく、それを実装するのも良い解決策ですが、コードの変更が大きくなるため,今回はpc_backend側でescapeしたものをDBに入れるような方針にします。
Updated by Itsuro Tajima about 14 years ago
- Status changed from Accepted(着手) to Pending Review(レビュー待ち)
- % Done changed from 0 to 50
更新履歴 b071ff93a01d999d06de8592975d0b0058153be5 で適用されました。
Updated by Kousuke Ebihara about 14 years ago
- Status changed from Pending Review(レビュー待ち) to Rejected(差し戻し)
ちゃんと見ていませんが取り急ぎ差し戻します(管理画面で繰り返し編集することで多重エスケープとかになってしまいそうとか思いましたが、まったく見ていません)。この変更を stable-3.6.x に入れるのは待ってください。
- エスケープは 必ず 出力時におこなうようにしてください (http://github.com/ebihara/OpenPNE3-doc/blob/master/secure-coding-guideline/secure-coding-guideline.ja.rst の「正しく入力値を検証する」と「SNS 内情報を安全な形で保存する」で繰り返し否定しています)
Updated by Itsuro Tajima about 14 years ago
- Status changed from Rejected(差し戻し) to Pending Review(レビュー待ち)
更新履歴 a558bed20786731008785b5151c82ef8dc084b36 で適用されました。
Updated by Itsuro Tajima about 14 years ago
- Status changed from Pending Review(レビュー待ち) to Rejected(差し戻し)
Updated by Itsuro Tajima about 14 years ago
- Status changed from Rejected(差し戻し) to Accepted(着手)
Updated by Itsuro Tajima about 14 years ago
- Status changed from Accepted(着手) to Pending Review(レビュー待ち)
SnsTermがfrontingなどの処理を終え、最終的にStringを出力する__toString()の部分にescapeを実装しました。
Updated by Itsuro Tajima about 14 years ago
更新履歴 3d4cf4d5f8ad7481317499621c919b825920f82f で適用されました。
Updated by Masato Nagasawa almost 14 years ago
- Status changed from Pending Review(レビュー待ち) to Rejected(差し戻し)
説明に修正内容の記述をお願いします。
Updated by Shingo Yamada over 13 years ago
- Priority changed from Normal(通常) to High(高め)
Updated by Itsuro Tajima over 13 years ago
- Status changed from Rejected(差し戻し) to Accepted(着手)
Updated by Itsuro Tajima over 13 years ago
- Status changed from Accepted(着手) to Pending Review(レビュー待ち)
Updated by Kousuke Ebihara over 13 years ago
- Status changed from Pending Review(レビュー待ち) to Pending Testing(テスト待ち)
- % Done changed from 50 to 70
Updated by Fumie Toyooka about 13 years ago
- Status changed from Pending Testing(テスト待ち) to Fixed(完了)
- % Done changed from 70 to 100
テストOKです。