JSON APIã®URLãIEã§éãã¨åæã«Content-Typeãtext/htmlã¨æ¨æ¸¬ãã¦ãã¾ããã¨ãããããã®å ´åãXSSæ»æãã§ãã¦ãã¾ãå ´åããã
ããã®å¯¾çã¨ãã¦
- JSONã ãã©ããHTMLã®ã¨ã¹ã±ã¼ãããã
- X-Content-Type-Options: nosniffãè¨å®ãã
- XHRãå©ç¨ããæã¯ãX-Requested-Withããããè¨å®ããè¨å®ãã¦ããªããã°ãµã¼ãå´ã§ã¨ã©ã¼ã«ãã
ãªã©ãããã
1,2ã¯ç¥ã£ã¦ãããã©ã3ã¯åãã¦ç¥ã£ãã
2ã¯æ¥½ãªã®ã ãã©ãå¤ãIEã ã¨å¯¾å¿ãã¦ããªãã¨ããåé¡ãããã1ã¯å¤ãIEã§ãæå¹ãªãã ãã©ããæ¬æ¥ã¨ã¹ã±ã¼ãããªãã¦ãããã®ãã¨ã¹ã±ã¼ãããã®ãããªæããããã
ã¨ããããã§ã2ã¨3ã®çµåããè¯ãããã
ã§ãX-Requested-Withãããã¯jQueryãprototype.jsã§ã¯èªåçã«è¨å®ãã¦ãããããã ããã¯ãã¹ãã¡ã¤ã³ã®XHRã ã¨ãæ¨æºã§ã¯ãªãããããä»ãã¦ãã¾ãããã«ãpreflightã®ãªã¯ã¨ã¹ããçºçãã¦ãã¾ããããªãå ´åãããããããã¨ããããã§ãã¯ãã¹ãã¡ã¤ã³ã ã¨ããããèªåã«è¨å®ããªãå®è£ ã«ãªã£ã¦ãããã¬ã¼ã ã¯ã¼ã¯ãããã