SonarCloudで検出されたHTMLのSecurity Hotspotを対策する #1506
Merged
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
PR の目的
#1504 で新たに検出された Security Hotspot を対策して、30日以内に作成されるPRの静的解析結果に悪影響を与えないようにします。
カテゴリ
PR の背景
#1505 でHTMLの Bugs を修正した際に、新たに4件の Security Hotspot が検出されました。
https://sonarcloud.io/project/security_hotspots?id=sakura-editor_sakura&sinceLeakPeriod=true
単純にこれを放置しておくと、新規にマズいコードを書かなくても
30日間は「新規コードにSecurity Hotspotが4件」と出てしまうと考えられます。
これはちょっとイヤなので、なんとか対応できないか検討してみました。
Security Hotsopotは「絶対マズい」という内容ではなく、
「大丈夫かどうかレビューして、OKと言えるなら無問題にしていい」
という性質のものらしいです。
内容をレビューして「問題ありませんでした。」なら、そのまま終わらせても大丈夫です。
なので指摘された内容をちゃんと調べてみました。
Security Hotspot 4件の内容はすべて同じ「rel=noopenerを付けなくて大丈夫か確認してください」でした。
PR #1505 のときはウインドウ制御に関するスクリプト系の指摘なので放置します、で終わらせましたが、対応したほうが良さそうです。
最近はタブブラウザが多いですが、rel=noopenerを付けないとオープンされた側からオープン元タブの中身を自由に書き換えることができてしまうんだそうです。
対象のHTMLはヘルプの一部ですので、ヘルプとして利用する分には問題ありません。
しかし、これはWebサイトの一部として公開するファイルでもあるので「対応しなくて良い」とまでは言えないです。
PR のメリット
PR のデメリット (トレードオフとかあれば)
仕様・動作説明
アプリの仕様・機能には影響しません。
変更仕様は「
target="_blank"
を持つ a タグを全置換してrel="noopener"
を付加します」です。参考サイト: https://forest.watch.impress.co.jp/docs/serial/yajiuma/1291549.html
解説には
rel=noopener
を書かれていますが、属性値は引用符付きで統一したので、引用符付きで入れます。(引用符を外す話は、HTML5への移行ができるようになったときに考える話だと思っています。)
PR の影響範囲
テスト内容
一般的な security suggestion を適用する内容なので、とくに行いません。
関連 issue, PR
#1505
#1504
参考資料