Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[ CTA ] ブロックで作成したCTAがエスケープされまくって崩れる不具合を修正 #1104

Merged
merged 4 commits into from
Jul 31, 2024

Conversation

kurudrive
Copy link
Member

@kurudrive kurudrive commented Jul 31, 2024

チケットへのリンク / 変更の理由(元のissueがあればリンクを貼り付ければOK)

#1101 でエスケープを追加したが、
厳しすぎてかなり表示が崩れてしまう

どういう変更をしたか?

  • CTA 出力時の wp_kses の解除
  • PHPUnitテスト追加
  • 入力欄に使っていた wp_kses の allowed_html をメソッド使用に変更

実装者はレビュワーに回す前に以下の事を確認してチェックをつけてください。

ソースコードについて

  • 複数の意図の変更 ( 機能の不具合修正 + 別の機能追加など ) を含んでいないか?
  • 関数名 / 変数名 / クラス名 / 保存値名 はそれだけで内容が想像できるものになっているか?紛らわしい命名になっていないか?
  • 関数名 / 変数名 / クラス名 / 保存値名 は既存のコードの命名規則に沿ったものになっているか?

デザイン・UI

  • 初見のユーザーが予備知識無しで使っても使いやすいようになっているか?
  • 情報意味を考慮した意味グルーピング・余白になっているか?
  • アラートの表示など追加した場合は他の同様の表示と同じデザインになっているか?

プログラムの変更の場合

テストを書かないのは普通ではありません。書けるテストは極力書くようにしてください。
書いていない場合は書かない理由を記載してください。

  • 書けそうなテストは書いたか?
  • 表示要素が仕様通りに表示されない不具合の修正ではない or 表示要素に関する不具合修正の場合テストは書いたか?

その他

  • readme.txt に変更内容は書いたか?
  • Files changed (変更ファイル)の内容は目視でちゃんと確認したか?
  • このチェック項目を機械的にチェックするのではなく本当にちゃんと確認をしたか?
  • レビュワーが確認しないでリリースしてしまっても問題ないレベルまでちゃんと作りこみ・確認をしたか?

変更内容について何を確認したか、どういう方法で確認をしたかなど

レビュワーの確認方法・確認する内容など

その他コードに問題があるかどうか

レビュワーに回す前の確認事項

  • このテンプレートのチェック項目をちゃんと確認してチェックしたか?

レビュワー向け

確認して変更が反映されていない場合の確認事項

  • プルしたか?
  • ビルドしたか?
  • ビルドしたディレクトリは正しいか(別の開発環境のディレクトリを見ていないか)?
  • npm install したか?
  • composer install したか?

@kurudrive kurudrive marked this pull request as ready for review July 31, 2024 07:12
@mthaichi mthaichi changed the title [ CTA ] ブロックで作成したCTAがエスケープされまくって崩れる不具合を修正 【確認中】[ CTA ] ブロックで作成したCTAがエスケープされまくって崩れる不具合を修正 Jul 31, 2024
Copy link
Contributor

@mthaichi mthaichi left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@kurudrive ありがとうございます!
気になった点コメントさせて頂きました。

),
);
?>
<?php $allowed_html = Vk_Call_To_Action::allowed_html(); ?>
<textarea name="vkExUnit_cta_text" id="vkExUnit_cta_text" rows="10em" cols="50em"><?php echo wp_kses( get_post_meta( get_the_id(), 'vkExUnit_cta_text', true ), $allowed_html ); ?></textarea>
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@kurudrive postmetaの保存時に wp_kses_post をかけているので、$allowed_htmlを指定する意味がないと思いますが、いかがでしょうか。ここでかけるとしたら、wp_kses_postですかね。
allowed_htmlをわざわざ設定しているのはどうしてでしょう。xss対応としては wp_kses_post で十分だと思います。

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@mthaichi ありがとうございまっする。
まぁ保存時にかけてるのでエスケープ不要論はありますが、他から書き換える事は不可能ではないので、念の為てきない感じです。
allowed に指定したのは Outer ブロックのstyleタグなど wp_kses_post が通さなくて表示が崩れたりするので、独自に用意していましたが、まぁここはそんなブロックのコードゴリっと書かれないと思いましたので wp_kses_posts に変更しましたん(・w・

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@kurudrive 修正頂いたコードで問題ないと思います。
CTA編集画面の本文で指定したブロックは特にXSS考慮はいらないと思います。metaboxで指定されたテキストについて、表示時にHTMLを除去したらいいとおもうですが、view-actionbox.phpをみると細々やってるので、それ以上いらないかなぁという見解です。

),
'span' => array(
'id' => array(),
'class' => array(),
'itemprop' => array(),
'itemscope' => array(),
'itemtype' => array(),
'style' => array(),
'style' => array(
'opacity' => array(),
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@kurudrive この指定はあくまでHTML属性レベルの話だと思うので、styleの中にopacityとか指定はできないと理解していますが、いかがでしょうか。別の箇所に書きましたが、保存時にwp_kses_postをかけているのでXSS対応としては十分で、ここで細かく指定する意味がないように思います。

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@mthaichi あー、りがとうございまっする。テストしてた時の名残でした!不要ですので削除しました!

@mthaichi mthaichi merged commit 8a502df into master Jul 31, 2024
3 checks passed
@mthaichi mthaichi deleted the fix/cta/Uncaught-Error branch July 31, 2024 10:03
@mthaichi mthaichi changed the title 【確認中】[ CTA ] ブロックで作成したCTAがエスケープされまくって崩れる不具合を修正 [ CTA ] ブロックで作成したCTAがエスケープされまくって崩れる不具合を修正 Jul 31, 2024
@mthaichi
Copy link
Contributor

@kurudrive 修正ありがとうございました!

@kurudrive
Copy link
Member Author

@mthaichi 確認ありがとうございまするー!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants