操作
Bug(バグ) #696
完了[opMessagePlugin] 他人のメッセージを自分のゴミ箱に移動できる
Kiwa Sakai さんが14年以上前に追加. 14年以上前に更新.
開始日:
2010-02-19
期日:
進捗率:
100%
予定工数:
3.6 で発生するか:
[QA]バグ通知済:
3.8 で発生するか:
説明
(携帯版にて確認)
以下の手順で他人のメッセージを自分のゴミ箱に移動させることができる。
1. 適当な受信メッセージ詳細画面を表示
2. 削除ボタンのform actionの指定を他人が受信したメッセージのメッセージIDに変更する
3. 削除ボタンを押下する
4. ゴミ箱一覧に2で指定した他人のメッセージが表示される
移動したメッセージについて、メッセージ詳細を閲覧することはできないが、ゴミ箱メッセージ一覧にて送信者・タイトルの確認は行える
発生確認バージョン¶
opMessagePlugin 0.9.0.3-dev
ファイル
696.diff (1.16 KB) 696.diff | Shinichi Urabe, 2010-02-23 20:04 | ||
696_new.diff (1.61 KB) 696_new.diff | Shinichi Urabe, 2010-02-24 16:12 |
Shinichi Urabe さんが14年以上前に更新
- ステータス を New(新規) から Accepted(着手) に変更
- 担当者 を Shinichi Urabe にセット
- 優先度 を Normal(通常) から Urgent(急いで) に変更
Shinichi Urabe さんが14年以上前に更新
- 進捗率 を 0 から 40 に変更
http://trac.openpne.jp/changeset/13344 で修正しました。
メッセージ一覧からフォームのIDを変更して、他人のメッセージを削除できないようになったが、
エラーや404の対処がなくても問題ないか高橋さんに確認します。
また、詳細画面から削除した場合、404エラーページに飛ばす実装にしたが問題ないかも確認します。
エラーの対処が必要な場合、フォームを使ってるのでMessagePlugin用のバリデーションが必要かもしれません。
Shinichi Urabe さんが14年以上前に更新
■ 他人のメッセージが削除できる動作につきまして formのパラメータを意図的に変更することで 他人のメッセージを削除できてしまう問題についての確認となります。 この現象につきまして、原因を調べましたところ、action の executeDelete メソッドまたは MessageDeleteForm クラスにて、削除権限の確認がございませんため、 発生する問題であることを確認しました。 このことを踏まえ以下の 2点について方針の確認をお願いします。 1) 受信、送信、削除メッセージ一覧からのメッセージ削除につきまして (メッセージ複数) 3つメッセージを削除しようとし、そのうちの1つのメッセージの値を 不正に修正した場合、3つのメッセージとも不正な値に修正しました場合がございます。 権限がないmessage_idが含まれる場合の対処について以下のいずれの方針がよろしいでしょうか? 他の方法がございましたら、ご指示いただけますと幸いです。 a. 最小限の実装) エラーメッセージは表示させず、権限のないメッセージのみ削除させない b. エラーメッセージは表示させず、すべてメッセージを削除させない c. form のバリデーションを用意し、権限のないメッセージが一つでもある場合は フォームにより、エラーメッセージを表示させる、権限のないメッセージのみ削除させない d. form のバリデーションを用意し、権限のないメッセージが一つでもある場合は フォームにより、エラーメッセージを表示させる、すべてメッセージを削除させない e. 404 エラーページへリダイレクトする、権限のないメッセージのみ削除させない f. 404 エラーページへリダイレクトする、すべてメッセージを削除させない 2) メッセージ詳細画面でのメッセージ削除につきまして (メッセージ単一) 権限がない場合の対処について以下のいずれの方針がよろしいでしょうか? 他の方法がございましたら、ご指示いただけますと幸いです。 a. 最小限の実装) エラーメッセージを表示させ、権限のないメッセージは削除させない b. flashを使い、エラーメッセージを表示させ、権限のないメッセージは削除させない c. 404エラーページにリダイレクトさせ、権限のないメッセージは削除させない 私としましては、今回の修正につきましては最小限の実装におさえ、 エラーメッセージは表示させないような実装となるのですが、 別の修正で、必要に応じてエラーメッセージを表示させる対応を行えばいいのではないかと 認識しております。いずれも [a.] の実装でいいのではないかと考えております。 お手数ですが修正方針のご確認をお願いいたします。
高橋さんより
メッセージ削除についての修正方針ですが > 1) 受信、送信、削除メッセージ一覧からのメッセージ削除につきまして (メッセージ複数) こちらはご提案どおり > a. 最小限の実装) エラーメッセージは表示させず、権限のないメッセージのみ削除させない でよろしいかと思います。 > 2) メッセージ詳細画面でのメッセージ削除につきまして (メッセージ単一) こちらについては、いずれにしても削除させないのですが 表示画面(Show)にて他人のメッセージの場合は404エラーに飛ばしているようですので > c. 404エラーページにリダイレクトさせ、権限のないメッセージは削除させない こちらで統一するのが良いのではないかと思いました。 修正の都合上、ご提案通りどちらも[a]案のほうがやりやすいということであれば それでも構いません。 お手数をお掛けしますがよろしくお願いします。
Shinichi Urabe さんが14年以上前に更新
- ステータス を Accepted(着手) から Pending Review(レビュー待ち) に変更
- 進捗率 を 40 から 50 に変更
単一メッセージは404
複数メッセージはエラー無しで、権限のないメッセージのみ削除できない実装で対応していますので確認をお願いします。
Rimpei Ogawa さんが14年以上前に更新
- ステータス を Pending Review(レビュー待ち) から Rejected(差し戻し) に変更
以下の点を修正してください。
- opMessagePluginMessageActions::executeDelete() で、sfContext::getInstance()->getUser() は $this->getUser() で OK です
- PluginDeletedMessageTable::restoreMessage() で sfContext::getInstance()->getUser() を呼ぶように変更されていますが、これにより frontend 以外からこのメソッドの実行ができなくなってしまいます
- addDeleteMessageQuery() のような限定的な使い方であれば、引数に適切な $memberId を渡すことで回避できるようになります
Shinichi Urabe さんが14年以上前に更新
- ファイル 696_new.diff 696_new.diff を追加
- ステータス を Rejected(差し戻し) から Pending Review(レビュー待ち) に変更
誰でもメッセージを元に戻せる問題を修正した差分を修正添付しました。
確認をお願いします。opMessagePlugin のtrunk の最新のソースに追加した差分となります。
Shinichi Urabe さんが14年以上前に更新
- ステータス を Pending Testing(テスト待ち) から Fixed(完了) に変更
- 進捗率 を 50 から 100 に変更
テスト、コードチェックありがとうござます。
操作