- sisidovski
- 5299
- 18
- 13
- 0
CSP対応していくにはどうするか? 1. HTMLタグで直接書くような onclick属性に生やすようなものは消す 2. scriptタグにnonce対応で、属性値をつける 3. CSP headerをつける #io19jp pic.twitter.com/yJ9GyF5BH7
2019-05-10 07:50:10CSPが正しく設定されてるかを確認するには evaluatorがあるので、それを使う。 csp-evaluator.withgoogle.com #io19jp
2019-05-10 07:51:46そもそもどうやってXSSを起こすのか、例としては URL hashの値から得たものをそのまんまsanitizeしないでinnerHTMLに渡すケース。 これらのAPIをそのまま使うとXSSが起こせる。 #io19jp pic.twitter.com/9b7ON6LTUW
2019-05-10 07:54:34Trusted typesというCSPの属性がある。それを使って信頼性の高いHTMLしかinnerHTMLできないようにする仕組みの紹介。 TrustedTypes objectから生成された自分のJSでしかinnerHTMLで HTMLを作れないようにする。 #io19jp pic.twitter.com/Wt3z8hrsk3
2019-05-10 07:57:56Trusted Typesはより信頼性の高いコードしか動かなくさせる仕組み、今のところorigin trialsとして提供予定 #io19jp pic.twitter.com/EbqbRPE2H1
2019-05-10 07:59:10#io19jp / “GitHub - WICG/trusted-types: A browser API that aims to prevent DOM-Based Cross Site Scripting in modern web applications.” htn.to/3f7KjRFHUg
2019-05-10 08:00:16Why do we need isolation? victim.exampleを開いているつもりがCSRFやXSSやclick jackingによりページのリクエストを奪われたり偽物を開かれたりするため。 #io19jp pic.twitter.com/jtKQ1G9SBh
2019-05-10 08:02:57最初に悪意のある方を開いて、evil.exampleから新しいウィンドウで本物victim.exampleが開かれたりする。こういうケースもある。 #io19jp pic.twitter.com/zuivtCkK3c
2019-05-10 08:04:37偽物からfetchされたりした時にはそれがわかるようにSec-Fetch-Site、Sec-Fetch-Modeなどのヘッダーがブラウザからつく。これをチェックすればある程度セキュアに。 #io19jp pic.twitter.com/ulpcT7T0Fy
2019-05-10 08:08:18window.openからサイトを開かれた場合にopenerが誰かによってそもそも開いていいかどうかを決めることができる。それが新しいポリシーの Cross Origin Opener Policy #io19jp pic.twitter.com/G9bwlyd8wx
2019-05-10 08:10:46