Closed drill-lancer closed 3 months ago
@mthaichi stripslashes はエスケープには関係がないと思ったので削除しました。 そういう意味があったというのを知りませんでした。勉強になりました。 というわけで、stripslashes が必要そうなところにはそれを施してみました。
@kurudrive ちょっと上にそれっぽい許可条件があったのでそれを元にエスケープしてみました。
@mthaichi stripslashes はエスケープには関係がないと思ったので削除しました。 そういう意味があったというのを知りませんでした。勉強になりました。 というわけで、stripslashes が必要そうなところにはそれを施してみました。
@drill-lancer ありがとうございます! 適切に修正されていると思います。
@drill-lancer ありがとうございます! 適切に修正されていると思います。
@kurudrive @drill-lancer あと、XSSとまではいかないので must ではないのですが、 たとえば、連絡先の「電話アイコン」は、HTMLは必要ないので、wp_kses_post ではなく、wp_strip_all_tagsを使うといいかなと思います。
「電話番号」については、太字にしたいとか色をつけたいというニーズがあるので、wp_kses_postで良いかもしれません。
余計なHTMLを許可しているのはあまり印象が良くないので、この機会に修正頂くと良いと思います。
面倒な修正、ありがとうございます!
@kurudrive @drill-lancer "echo $" でプロジェクト全体に全文検索かけて、ひっかかった変数が、入力由来のものであればエスケープをかけるという感じで残りを潰していってよいと思います。
@mthaichi
連絡先の「電話アイコン」は、HTMLは必要ない
i タグで書くものと思って wp_kses_post にしています。
@mthaichi
連絡先の「電話アイコン」は、HTMLは必要ない
i タグで書くものと思って wp_kses_post にしています。
@drill-lancer なるほど、でもここは fas fa-phone-square とクラス名を書く感じではないでしょうか。 font awesomeで iタグをそのままコピペしても通るようにしてあるのであれば、最低限の wp_kses_postでよいと思いますが、としても、理想を言えば wp_ksesで iタグのみ通るようにすべきところだと思います。
長い目でみても、バリデーションやサニタイズを厳しめにしたほうがいいので、HTMLいれる必要がないフィールドは wp_strip_all_tags でHTML全削除したほうが良いと私は思います。ご面倒をおかけしますが(・人・)
@mthaichi @drill-lancer アイコンの部分はもともと クラス名入力だけだったものを後から i タグで入力してもらうように仕様変更しているケースもあるので、少なくとも i タグの許可は必要です(・w・
@mthaichi @drill-lancer アイコンの部分はもともと クラス名入力だけだったものを後から i タグで入力してもらうように仕様変更しているケースもあるので、少なくとも i タグの許可は必要です(・w・
@kurudrive @drill-lancer なるほど、tel_iconだけですが直してみましたー。
すみません。私このあと用事がございまして、@kurudriveさんが見てOK なら良いと思います。🙏
@drill-lancer @mthaichi ありがとうございました!
チケットへのリンク / 変更の理由(元のissueがあればリンクを貼り付ければOK)
https://github.com/vektor-inc/vk-all-in-one-expansion-unit/issues/1100
どういう変更をしたか?
上記に潜んでいた XSS を潰しました
P.S. メイン設定については潰れているようでした。
実装者はレビュワーに回す前に以下の事を確認してチェックをつけてください。
ソースコードについて
デザイン・UI
プログラムの変更の場合
テストを書かないのは普通ではありません。書けるテストは極力書くようにしてください。 書いていない場合は書かない理由を記載してください。
その他
変更内容について何を確認したか、どういう方法で確認をしたかなど
上記の input[type="text"] に
"><script>alert(0)</script>
を入れてアラートが出ないのを確認しました。確認URL
ローカル環境
レビュワーの確認方法・確認する内容など
"><script>alert(0)</script>
を入れてアラートが出ないこと。上記の確認をお願いします。
レビュワーに回す前の確認事項
レビュワー向け
確認して変更が反映されていない場合の確認事項