プロジェクト

全般

プロフィール

Bug(バグ) #1635

SNS名称変更で入力した値がエスケープされていない

Hiroki Mogi13年以上前に追加. 8年以上前に更新.

ステータス:
Fixed(完了)
優先度:
High(高め)
担当者:
対象バージョン:
開始日:
2010-10-01
期日:
進捗率:

100%

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

説明

■バグ概要

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を実装しました。


関連するチケット

関連している OpenPNE 3 - Enhancement(機能追加・改善) #780: Activityの名称を変更できるようにする Fixed(完了) 2010-03-03
関連している OpenPNE 3 - Backport(バックポート) #1962: SNS名称変更で入力した値がエスケープされていない Fixed(完了) 2010-10-01 2011-10-05
関連している OpenPNE 3 - Backport(バックポート) #2167: SNS名称変更で入力した値がエスケープされていない Fixed(完了) 2011-06-09

関係しているリビジョン

リビジョン b071ff93 (差分)
Itsuro Tajima13年以上前に追加

(fixes #1635) added escape function before saving sns term configuration

リビジョン a558bed2 (差分)
Itsuro Tajima13年以上前に追加

Revert "(fixes #1635) added escape function before saving sns term configuration"

This reverts commit b071ff93a01d999d06de8592975d0b0058153be5.

リビジョン 3d4cf4d5 (差分)
Itsuro Tajima13年以上前に追加

(fixes #1635) fixed term output with escape

履歴

#1 Kousuke Ebihara13年以上前に更新

  • 対象バージョンOpenPNE 3.7.0 にセット
  • 3.6 で発生するかYes にセット

#2 Itsuro Tajima13年以上前に更新

  • ステータスNew(新規) から Accepted(着手) に変更

#3 Itsuro Tajima13年以上前に更新

  • 担当者Itsuro Tajima にセット

#4 Itsuro Tajima13年以上前に更新

SNS名称設定は、通常連想配列形式(ex:$op_term['community'])でアクセスしますが、これの実態はオブジェクトのため,連想配列形式でのアクセスはマジックメソッドによって行われています。これにエスケープを行うラッパーを適用すると、その部分が正常に動作しなくなる、というのが根本問題です。

#5 Itsuro Tajima13年以上前に更新

↑は間違いで、ArrayAccessの実装がDecoratorに反映されないのが問題です。
本来ならArrayのインタフェースに対応しており、なおかつObjectのように振る舞うDecoratorが望ましく、それを実装するのも良い解決策ですが、コードの変更が大きくなるため,今回はpc_backend側でescapeしたものをDBに入れるような方針にします。

#6 Itsuro Tajima13年以上前に更新

  • ステータスAccepted(着手) から Pending Review(レビュー待ち) に変更
  • 進捗率0 から 50 に変更

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

#7 Kousuke Ebihara13年以上前に更新

  • ステータスPending Review(レビュー待ち) から Rejected(差し戻し) に変更

ちゃんと見ていませんが取り急ぎ差し戻します(管理画面で繰り返し編集することで多重エスケープとかになってしまいそうとか思いましたが、まったく見ていません)。この変更を stable-3.6.x に入れるのは待ってください。

#8 Itsuro Tajima13年以上前に更新

  • ステータスRejected(差し戻し) から Pending Review(レビュー待ち) に変更

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

#9 Itsuro Tajima13年以上前に更新

  • ステータスPending Review(レビュー待ち) から Rejected(差し戻し) に変更

#10 Itsuro Tajima13年以上前に更新

  • ステータスRejected(差し戻し) から Accepted(着手) に変更

#11 Itsuro Tajima13年以上前に更新

  • ステータスAccepted(着手) から Pending Review(レビュー待ち) に変更

SnsTermがfrontingなどの処理を終え、最終的にStringを出力する__toString()の部分にescapeを実装しました。

#12 Itsuro Tajima13年以上前に更新

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

#13 Masato Nagasawa約13年前に更新

  • ステータスPending Review(レビュー待ち) から Rejected(差し戻し) に変更

説明に修正内容の記述をお願いします。

#14 Shingo Yamada12年以上前に更新

  • 優先度Normal(通常) から High(高め) に変更

#15 Itsuro Tajima12年以上前に更新

  • ステータスRejected(差し戻し) から Accepted(着手) に変更

#16 Itsuro Tajima12年以上前に更新

  • ステータスAccepted(着手) から Pending Review(レビュー待ち) に変更

#17 Shingo Yamada12年以上前に更新

  • 360対象RC1 にセット

#18 Yuma Sakata12年以上前に更新

  • 360対象 を削除 (RC1)

#19 Yuma Sakata12年以上前に更新

  • 360対象RC1 にセット

#20 Kousuke Ebihara12年以上前に更新

  • ステータスPending Review(レビュー待ち) から Pending Testing(テスト待ち) に変更
  • 進捗率50 から 70 に変更

#21 Fumie Toyooka12年以上前に更新

  • ステータスPending Testing(テスト待ち) から Fixed(完了) に変更
  • 進捗率70 から 100 に変更

テストOKです。

#22 kaoru n8年以上前に更新

  • 3.8 で発生するかUnknown (未調査) にセット

他の形式にエクスポート: Atom PDF