ÕªÒª£ºJSONPÊÇ»ùÓÚJSON¸ñʽµÄΪ½â¾ö¿çÓòÇëÇó×ÊÔ´¶ø²úÉúµÄ½â¾ö·½°¸¡£ËüµÄ»ù±¾ÔÀíÊÇÀûÓÃHTMLµÄÔªËØ±êÇ©£¬Ô¶³Ìµ÷ÓÃJSONÎļþÀ´ÊµÏÖÊý¾Ý´«µÝ¡£±¾ÎĽ«ÊáÀíJSONPʵÏÖ¹ý³ÌÖеݲȫ¹¥·À¡£

¹ØÓÚJSONP
JSONPÈ«³ÆÊÇJSON with Padding£¬ÊÇ»ùÓÚJSON¸ñʽµÄΪ½â¾ö¿çÓòÇëÇó×ÊÔ´¶ø²úÉúµÄ½â¾ö·½°¸¡£ËüµÄ»ù±¾ÔÀíÊÇÀûÓÃHTMLµÄÔªËØ±êÇ©£¬Ô¶³Ìµ÷ÓÃJSONÎļþÀ´ÊµÏÖÊý¾Ý´«µÝ¡£Èç¹ûÏëÔÚa.comÓòÏ»ñÈ¡b.comϵÄJSONÊý¾Ý£¨getUsers.JSON£©£º

ÄÇô¿ÉÒÔÊ×ÏÈͨ¹ýJSONPµÄ¡°Padding¡±Õâ¸ögetUsers.JSONÊä³öΪ£º

¶ÔÓÚʵ¼ÊÓ¦Óùý³ÌÖÐcallbackµÄÃû³Æ£¬ºǫ́ʵÏÖÊǶ¯Ì¬Êä³öµÄ¡£ÉÏÃæÀý×ÓÓÃPHPʵÏÖÈçÏ£º

È»ºóÔÚa.comʹÓã¼script£¾½øÐÐÔ¶³Ìµ÷Óã¬ÔÚjQueryÖпÉÒÔÖ±½ÓÕâÑùµ÷Óãº

È»¶ø£¬°²È«ÎÊÌâÒ»Ö±°éËæ×ÅÒµÎñ·¢Õ¹£¬JSONPͬÑù´øÀ´¸÷ÖÖ°²È«ÎÊÌâ¡£±¾Îľͽ«ÊáÀíJSONPʵÏÖ¹ý³ÌÖеݲȫ¹¥·À¡£
JSON½Ù³Ö
JSON½Ù³ÖÓֳơ°JSON Hijacking¡±£¬2008Äê¹úÍⰲȫÑо¿ÈËÔ±¿ªÊ¼Ìáµ½ÓÉJSONP´øÀ´µÄ·çÏÕ¡£Õâ¸öÎÊÌâÊôÓÚCSRF£¨Cross-site request forgery¿çÕ¾ÇëÇóαÔ죩¹¥»÷·¶³ë£¬µ±Ä³ÍøÕ¾Í¨¹ýJSONPµÄ·½Ê½¿çÓò£¨Ò»°ãΪ×ÓÓò£©´«µÝÓû§ÈÏÖ¤ºóµÄÃô¸ÐÐÅϢʱ£¬¹¥»÷Õß¿ÉÒÔ¹¹Ôì¶ñÒâµÄJSONPµ÷ÓÃÒ³Ãæ£¬ÓÕµ¼±»¹¥»÷Õß·ÃÎÊ£¬ÒÔ´ïµ½½ØÈ¡Óû§Ãô¸ÐÐÅÏ¢µÄÄ¿µÄ¡£Ò»¸öµäÐ͵ÄJSON Hijacking¹¥»÷´úÂëÈçÏ£º

ÕâÊÇÎÚÔÆÉϱ¨¸æµÄÒ»¸ö¹¥»÷°¸Àý£¨WooYun-2012-11284£©£¬µ±±»¹¥»÷ÕߵǼ360ÍøÕ¾²¢·ÃÎʸÃÍøÒ³Ê±£¬¸öÈËÒþ˽Êý¾Ý£¨ÈçÓû§Ãû¡¢ÓÊÏäµÈ£©¿ÉÄܱ»¹¥»÷Õß½Ù³Ö¡£
ËäÈ»ÕâÖÖ¹¥»÷ÒѳöÏÖ¶àÄ꣬µ«Ä¿Ç°ÔÚ´óµÄÃÅ»§ÍøÕ¾»¹ÆÕ±é´æÔÚ£¬¶øÇÒÓÉÓÚ°²È«Òâʶ±¡Èõ£¬Ðí¶àÆóÒµ²¢Î´Òâʶµ½ÕâÒ»ÎÊÌâµÄÖØÒªÐÔ¡£
²»¹ýÐí¶à¼×·½¹«Ë¾¿ªÊ¼ÖØÊÓ´ËÀలȫÎÊÌ⣬×ÅÊÖÑо¿½â¾ö·½°¸¡£·½°¸Ö®Ò»¾ÍÊÇÑéÖ¤JSONÎļþµ÷ÓõÄÀ´Ô´£¨Referer£©¡£ËüÖ÷ÒªÀûÓã¼script£¾Ô¶³Ì¼ÓÔØJSONÎļþʱ»á·¢ËÍRefererµÄ»úÖÆ£¬ÔÚÍøÕ¾Êä³öJSONÊý¾Ýʱ£¬ÅжÏRefererÊÇ·ñ°üº¬ÔÚ°×Ãûµ¥ÄÚ¡£Õâ¸ö·½·¨ÀíÂÛÉÏ¿ÉÐУ¬µ«¾ßÌåʵÏÖ¹ý³ÌÈÝÒ׳öÏÖÁ½ÖÖÂß¼ÎÊÌâ¡£
¡¾Referer¹ýÂË£¨ÕýÔò£©²»ÑϽ÷¡¿
ÀýÈçhttp://www.qq.com/login.php?calback=cbÕâ¸öURLÊä³öÊý¾Ýʱ£¬Ê¹ÓÃÁËReferer¹ýÂË¡£µ«¿Éϧֻ¹ýÂËÁËÊÇ·ñ°üº¬qq.comÕâÑùµÄ¹Ø¼ü´Ê£¬¶ø¹¥»÷Õß¿ÉÒÔͨ¹ý¹¹ÔìURL£¨ÀýÈçhttp://www.qq.com.attack.com/attack.htm»òhttp://www.attack.com/attack.htm?qq.com£©ÈƹýReferer·ÀÓù¡£
¡¾¿ÕReferer¡¿
ÔںܶàÇé¿öÏ£¬¿ª·¢Õß²¿Êð¹ýÂËRefererÀ´Ô´Ê±£¬ºöÊÓÁË¿ÕRefererµÄ¹ýÂË¡£Ò»°ãÇé¿öÏÂä¯ÀÀÆ÷Ö±½Ó·ÃÎÊijURLÊDz»´øRefererµÄ£¬Òò´ËºÜ¶à·ÀÓù²¿ÊðÔÊÐí¿ÕReferer¡£Ç¡Ç¡ÓÉÓÚÕâ¸öÊèºö£¬µ¼ÖÂÁËÕû¸ö·ÀÓùϵͳ±¼À££¬ÒòΪÔÚͨ¹ý¿çÐÒéµ÷ÓÃJavaScriptʱ£¬·¢Ë͵ÄHTTPÇëÇóÖÐRefererΪ¿Õ¡£¿çÐÒéµ÷ÓõÄÒ»¸ö¼òµ¥Àý×ÓÈçÏ£º

´úÂëÖÐÎÒÃÇʹÓã¼iframe£¾µ÷ÓÃJavaScriptαÐÒéÀ´ÊµÏÖ¿ÕRefererµ÷ÓÃJSONÎļþ¡£
ÁíÍâÒ»ÖÖÊÖ¶ÎÊÇͨ¹ýËæ»útoken·ÀÓù£¬ÕâÏî¼¼ÊõÔÚÌÚѶµÄÍøÕ¾ÉÏÓ¦Óý϶࣬ÀýÈçͨ¹ýhttp://r.qzone.qq.com/cgi-bin/tfriend/friend_show_qqfriends.cgi?uin=[QQºÅ]&g_tk=[Ëæ»útoken]Êä³öJSON¡£Õâ¸ö·½°¸ÊÇÓÐЧµÄ£¬µ«Í¬Ñù´æÔÚ·ÀÓùʵÏÖ²»ÑϽ÷µÄÎÊÌâ¡£ÀýÈç´Ëtoken¿Éͨ¹ýÒÔÏ·½Ê½±©Á¦ÆÆ½â£º

µ±È»£¬ÕâЩ¶¼Êǵ¥´¿Õë¶Ô¡°JSON½Ù³Ö¡±±¾ÉíÕ¹¿ªµÄ¹¥·ÀÕ½¡£ÔÚÏÖʵÖУ¬Ðí¶à©¶´ÊÇÏ໥ÅäºÏʵÏÖÍ»ÆÆµÄ¡£ÀýÈçÉÏÃæÌáµ½µÄÏÞÖÆReferer+²¿ÊðËæ»útokenʵÏÖ¶¼ºÜÍêÃÀ£¬ÀíÂÛÉÏÎÞи¿É»÷£¬µ«Ö»Òª¸ÃÍøÕ¾´æÔÚXSS©¶´£¬¾Í¿ÉÄÜÈÃÄãµÄ·ÀÓùÌåϵ˲¼ä±ÀÀ££¡ÕâÀï˳´øÒ»ÌᣬÒÔÉÏÊÇһЩͨÓÃʵÏÖ¡°JSON½Ù³Ö¡±µÄ·½·¨£¬µ«ÏÖʵÖУ¬Ä³Ð©ä¯ÀÀÆ÷µÄÒ»Ð©ÌØÓд¦Àí»úÖÆ£¨ÈçCSS¼ÓÔØ¡¢´íÎóÐÅÏ¢ÏÔʾµÈ£©£¬Ò²ÄÜÒý·¢ÀàËÆ¡°JSON½Ù³Ö¡±£¨¹¥»÷¶ÔÏó²»Ò»¶¨ÊÇJSON£©µÄ¹¥»÷¡£
callback¿É¶¨Ò嵼ֵݲȫÎÊÌâ
ΪÁË·½±ãǰ¶Ë¿ª·¢µ÷Óã¬Êä³öÒ»°ã¶¼Êǿɶ¨ÒåµÄ£¬Ç°ÎÄÌáµ½µÄPHPʵÏֵĴúÂ룺

¾ÍÊÇÒòΪ¿É¶¨ÒåcallbackÃûÊä³öµã£¬µ¼ÖÂÁ˸÷ÖÖ°²È«ÎÊÌâ¡£µ±È»ÑϸñÀ´Ëµ£¬ÀïÃæÌáµ½µÄ¾ßÌåÊý¾ÝÊä³öÒ²ÊÇ¿ÉÒÔÀûÓõģ¬Ö»ÊDZ¾ÎÄÖØµãÇ¿µ÷callbackÕâ¸öÊä³öµã¡£
¡¾Content-TypeÓëXSS©¶´¡¿
ÔÚJSON¸Õ³öÏÖʱ£¬´ó¶àÊý¿ª·¢Õß»¹Ã»ÓÐÁ¼ºÃµÄ±àÂëϰ¹ß¡£Êä³öJSONʱ£¬Ã»ÓÐÑϸñ¶¨ÒåContent-Type£¨Content-Type: application/json£©£¬ÔÙ¼ÓÉÏcallbackÊä³öµãûÓнøÐйýÂË£¬Ö±½Óµ¼ÖÂÁËÒ»¸öµäÐ͵ÄXSS©¶´£¬ÉÏÎÄÑÝʾµÄgetUsers.php¾Í´æÔÚÕâ¸öÎÊÌ⣺

¶ÔContent-TypeÀ´Ëµ£¬ÔçÆÚ»¹ÓÐÒ»²¿·ÖÈ˱ȽÏϲ»¶Ê¹ÓÃapplication/javascript£¬¶øÕâ¸öÍ·ÔÚIEµÈä¯ÀÀÆ÷ÏÂÒ»Ñù¿ÉÒÔ½âÎöHTMLµ¼ÖÂXSS©¶´¡£¶ÔÓÚÕâÖÖÀàÐ͵Ä©¶´£¬·ÀÓùÖ÷Òª´ÓÒÔÏÂÁ½µã²¿Êð¡£
a. Ñϸñ¶¨ÒåContent-Type: application/json
ÕâÑùµÄ·ÀÓù»úÖÆµ¼ÖÂÁËä¯ÀÀÆ÷²»½âÎö¶ñÒâ²åÈëµÄXSS´úÂ루ֱ½Ó·ÃÎÊÌáʾÎļþÏÂÔØ£©¡£µ«·²Ê¶¼ÓÐÀýÍ⣬ÔÚIEµÄ½ø»¯¹ý³ÌÖоÍÔø³öÏÖͨ¹ýһЩ¼¼ÇÉ£¬¿ÉÒÔÈÆ¹ýContent-Type·ÀÓù½âÎöHTMLµÄʼþ£¬ÀýÈçÔÚIE6¡¢7µÈ°æ±¾ÇëÇóµÄURLÎļþºó¼ÓÒ»¸ö/x.html¾Í¿ÉÒÔ½âÎöHTML£¨http://127.0.0.1/getUsers.php/x.html?callback=£¼script£¾alert(/xss/)£¼/script£¾£©£¬¾ßÌå¿É²Î¿¼http://hi.baidu.com/hi_heige/item/f1ecde01c4af3ed61ef04646¡£
b. ¹ýÂËcallbackÒÔ¼°JSONÊý¾ÝÊä³ö
ÕâÖÖ»úÖÆÊDZȽϴ«Í³µÄ¹¥·À˼ά£¬¶ÔÊä³öµã½øÐÐXSS¹ýÂË¡ª¡ªÓÖÊÇÒ»¸ö¿´ÉÏÈ¥ºÜÍêÃÀµÄ½â¾ö·½°¸£¬µ«ÍùÍù¶¼¡°ÊÂÓëԸΥ¡±¡£2011Ä꣬һ¸öutf7-BOM¾Í¸´»îÁËn¸öXSS©¶´¡£ÕâÖÖ¹¥»÷·½Ê½Ö÷Òª´æÔÚÓÚIEÖУ¨Ð°æIEÒÑÐÞ¸´£©£¬µ±ÎÒÃÇÔÚcallbackµãÊä³ö+/v8ÕâÑùµÄutf7-BOMʱ£¬IEä¯ÀÀÆ÷»á°Ñµ±Ç°Ö´ÐеıàÂëÈÏΪÊÇutf7£¬Òò´ËÎÒÃÇͨ¹ýutf7Ìá½»µÄXSS´úÂë»á±»×Ô¶¯½âÂë²¢Ö´ÐС£ÀýÈ磺

ÆäÖУº

URLdecodeΪ£º

+/v8Ϊutf7-BOM£¬ÆäºóΪÎÒÃÇ×¢Èëͨ¹ýutf-7±àÂëºóµÄXSS´úÂ룺
£¼htm£¾£¼body£¾£¼script£¾alert(1);
£¼/script£¾£¼/body£¾£¼/htm£¾¡£
¹ØÓÚÕâ¸ö°¸ÀýµÄÏêÇé¿É²Î¿¼http://hi.baidu.com/hi_heige/item/357831ab6932239a14107346¡£
ÀûÓÃutf7-BOMÊÇÒ»Öַdz£Óдú±íÐÔµÄͨÓ÷½·¨£¬³ýÁËÉý¼¶IE½øÐзÀÓù£¬¿ª·¢ÕßÒ²¿ÉÖ±½ÓÖ¸¶¨Content-TypeµÄ±àÂ루Content-Type: application/json; charset=utf-8£©¡£È»¶ø¾¡¹ÜÈç´Ë£¬ÈÔÓÐÈÆ¹ýÕâЩ·ÀÓù´ëÊ©µÄ¿ÉÄÜ¡£
ÉÏÎÄÌáµ½µÄa¡¢bÁ½ÖÖ·ÀÓùȱһ¶¼¿ÉÄܳöÏÖÎÊÌ⣬ÄÇôÎÒÃÇʹÓá°a+b·½°¸¡±ÊÇ·ñ¾ÍÍòÎÞһʧÁËÄØ£¿Ò»ÇнÔÓпÉÄÜ£¬ÎÒÃÇÊÃÄ¿ÒÔ´ý¡£
ÆäËûÎļþ¸ñʽ£¨Content-Type£©ÓëJSON
¡¾MHTMLÓëJSONP¡¿
2011Ä꣬IEÔø³öÏÖÒ»¸öͨ¹ýMHTMLÐÒé½âÎö¿çÓòµÄ©¶´£ºMHTML Mime-Formatted Request Vulnerability£¨CVE-2011-0096£¬https://technet.microsoft.com/library/security/ms11-026£©¡£¶øµ±Ê±µÄÒ»ÖÖ³£¼û¹¥»÷·½Ê½¾ÍÊÇÀûÓÃJSONPµ÷ÓûúÖÆÖеÄcallbackº¯ÊýÃûÊä³öµã£º

¹ØÓÚÕâ¸ö°¸Àý£¬Ïê¼û¡¶Hacking with MHTML Protocol Handler¡·£¨http://www.80vul.com/mhtml/Hacking%20with%20mhtml%20protocol%20handler.txt£©¡£
Ëü³ä·ÖÀûÓÃÁËcallbackÊä³öµãÖ±½ÓÊä³öMHTMLÎļþ¸ñʽ£¬È»ºóÀûÓã¼iframe£¾µ÷ÓÃMHTML±êÇ©½âÎö²¢Ö´ÐÐHTML¼°JavaScript´úÂ룬ÕâÒ²ÊÇÒ»¸öͨÓÃÐÔµÄXSS©¶´£¨UXSS£©£¬Ëæºó΢Èí½ô¼±ÍƳöÁ˽â¾ö·½°¸¼°Â©¶´²¹¶¡³ÌÐò¡£ÔÚ΢ÈíÍÆ³ö°²È«²¹¶¡Ç°£¬Õâ¸ö©¶´ÒÑÓ°ÏìGoogleµÈ´óÐÍÍøÕ¾£¬µ±Ê±GoogleΪÁË·ÀÓùÕâÀ๥»÷ÆôÓõĴëÊ©ÊÇ£¬ÔÚJSONÊä³öcallbackʱ£¬ÔÚÎļþ¿ªÍ·Ôö¼ÓÁ˶à¸ö»»Ðзû£¬ÈÃÔ¶³ÌMHTMLµ÷ÓÃʱ½âÎöʧ°Ü¡£
ÔÚ¹¥»÷½Ç¶ÈÀ´Ëµ£¬Ëü³ä·ÖÀûÓÃÁ˼ÆËã»úÌåϵµÄ¸÷ÖÖÎļþ¸ñʽʶ±ð»úÖÆ¡£ÔÚÕâ¸ö˼άµÄÒýµ¼Ï£¬Ö®ºó»¹³öÏÖ¹ý¶à´ÎÓÉÎļþ¸ñʽ¼ÓÔØ´øÀ´µÄ°²È«ÎÊÌ⣬ÀýÈçCSSÎļþ¸ñʽ¼ÓÔØµ¼ÖµÄÀà¡°JSON½Ù³Ö¡±£¬JavaScript¼ÓÔØ¼°¸÷ÖÖÎļþ¸ñʽ±àÂë´øÀ´µÄ°²È«ÎÊÌâµÈ¡£ÀúÊ·½ø³ÌÍùÍù»á³öÏÖ¸÷ÖÖ¾ªÈ˵ÄÏàËÆ£¬JSONPÓëÎļþ¸ñʽµÄ´«Ææ»¹ÔÚÉÏÑÝ¡£
¡¾FLASHÓëJSONP¡¿
¸ÃÀ´µÄÖÕ¾¿»áÀ´£¬Ö»ÊÇûÏëµ½ÏàËÆµÄ³¡¾°ÉÏÑݵÃÕâô¿ì¡£¾ÍÔÚ×î½üµÄÒ»´ÎFlash°²È«¸üУ¨security bulletin APSB14-17£©ÖÐÐÞ¸´ÁËÒ»¸ö°²È«Â©¶´£º
These updates include additional validation checks to ensure that Flash Player rejects malicious content from vulnerable JSONP callback APIs (CVE-2014-4671).
Õâ¸ö©¶´ÒòÓ°ÏìÁËGoogle¡¢Facebook¡¢TumblrµÈ´óÍøÕ¾¶ø±¸ÊÜýÌ幨ע¡£Æä¹¥»÷¼¼ÊõÓëJSONPµÄcallbackµãϢϢÏà¹Ø¡£Õâ¸öÎÊÌâÖ÷Òª·¢ÉúÔÚHTMLͨ¹ý£¼embed£¾¡¢£¼object£¾µ÷ÓÃÔ¶³ÌFlashÎļþʱ£¬»áÖ±½ÓºöÊÓContent-Type£¬¶øJSONPµÄcallbackÊä³öÒ»°ã¶¼ÔÚÎļþ¿ªÍ·£¬ÄÇôÍêÈ«¿ÉÒÔͨ¹ýcallbackµãÊä³öÒ»¸öswfµÄÎļþ£¬È»ºóÔ¶³ÌHTMLµ÷Óò¢ÔËÐÐswfÎļþ¡£ÀýÈ磺

ÕâÊÇÔçÔÚ2012Äê¾ÍÌá³öµÄͨ¹ýcallbackÊä³öµÄswfÎļþÁ÷£¬Æäʵ¼ÊЧ¹ûÊÇÔÚ±»¹¥»÷µÄÍøÕ¾ÉÏ´æ·ÅÁËÒ»¸ö¶ñÒâswfÎļþ£¬HTMLÔ¶³Ìµ÷ÓÃÕâ¸öswfÎļþ£¬¿ÉÖ±½Óµ¼ÖÂCSRF¹¥»÷¡£
¾ßÌåÉÏ´«FlashÎļþ´øÀ´µÄCSRF¹¥»÷£¬Çë²Î¿¼¡¶Flash+Upload Csrf¹¥»÷¼¼Êõ¡·Ò»ÎÄ£¨http://blog.knownsec.com/2014/06/flashupload_csrf _attacking/£©¡£
ϸÐĵÄÅóÓÑ¿ÉÄÜ·¢ÏÖ£¬ÉÏÃæ´úÂëcallbackÊä³öµÄswfÎļþÁ÷ÖдæÔÚ¸÷ÖÖÌØÊâ×Ö·û£¬Í¨¹ýǰÎÄÌáµ½µÄ¡°b. ¹ýÂËcallbackÒÔ¼°JSONÊý¾ÝÊä³ö¡±·½°¸¿ÉÒÔÖ±½ÓÀ¹½Ø£¬¶ÔÓÚGoolge¡¢FacebookÕâÑù¾Ã¾¿¼ÑéµÄ´óÍøÕ¾À´Ëµ£¬·ÀÓù²»ÔÚ»°Ï¡£
ÔÚFlash¸üС°security bulletin APSB14-17¡±·¢²¼ºó£¬¸Ã©¶´·¢ÏÖÕ߸ø³öÁË©¶´Ï¸½Ú£¬ÆäÖÐÒ»¸öÁÁµã£¬¾ÍÊÇ×÷ÕßʵÏÖÁËÒ»¸ö´¿alphanumericÊä³öswfÎļþµÄ·½·¨£º

¾ßÌåÇë²Î¿¼http://miki.it/blog/2014/7/8/abusing-jsonp-with-rosetta-flash/¡£
Òò´Ë£¬¶ÔÓÚ´¿alphanumericÊä³öÀ´Ëµ£¬ÄÇЩÕë¶ÔXSSµÄ¹ýÂËÏÔÈ»¿ÉÒÔÖ±½ÓºöÂÔ£¬Õâ¸ö©¶´Ò²Ö¤Ã÷ǰÎÄÎÒÃÇÌáµ½µÄ¡°a+b·½°¸¡±Äܱ»Ö±½ÓÈÆ¹ý¡£
·ÀÓù
ͨ¹ýÉÏÃæµÄ¹¥·À¶Ô¿¹ÑÝÁ·£¬ºÜ¶à¿ª·¢Õß¿ÉÄÜ»á¸Ð¾õÓе㱯¾ç£¬¸÷ÖÖ·ÀÓù»úÖÆºÃÏñ¶¼ÓÐ°ì·¨ÈÆ¹ý¡£ÕâÀïÎÒÏëµ½Ò»¸öÕæÀí£ºÃ»Óоø¶ÔµÄ°²È«¡£ÄÇôÎÒÃÇ·ÀÓùµÄÒâÒåÔÚÄÄÀïÄØ£¿ÎÒÈÏΪ·ÀÓùµÄÒâÒå¾ÍÊÇËäȻû°ì·¨ÈóÌÐò×ȫ£¨¾ø¶Ô°²È«£©£¬µ«¿ÉÒÔÈÃËü¸ü°²È«¡£Ìá¸ß¹¥»÷Õߵļ¼Êõ³É±¾ºÍÃż÷Êǰ²È«·ÀÓùµÄÒ»¸öÖ÷Òª²¢ÖØÒªµÄ˼·¡£»Øµ½¾ßÌåµÄJSONP·ÀÓùÉÏ£¬¿ÉÒÔ×ܽáÈçϼ¸µã¡£
- Ñϸñ°²È«µØÊµÏÖCSRF·½Ê½µ÷ÓÃJSONÎļþ£ºÏÞÖÆReferer¡¢²¿ÊðÒ»´ÎÐÔtokenµÈ¡£
- Ñϸñ°²×°JSON¸ñʽ±ê×¼Êä³öContent-Type¼°±àÂ루Content-Type: application/json; charset=utf-8£©¡£
- Ñϸñ¹ýÂËcallbackº¯ÊýÃû¼°JSONÊý¾ÝµÄÊä³ö¡£
- ÑϸñÏÞÖÆ¶ÔJSONPÊä³öcallbackº¯ÊýÃûµÄ³¤¶È£¨ÀýÈç·ÀÓùÉÏÃæFlashÊä³öµÄ·½·¨£©¡£
- ÆäËûһЩ±È½Ï¡°â«Ëö¡±µÄ·½·¨£ºÀýÈçÔÚcallbackÊä³öǰ¼ÓÈëÆäËû×Ö·û£¨Èç/**/¡¢»»ÐзûµÈ£©ÕâÑù²»Ó°ÏìJSONÎļþ¼ÓÔØ£¬ÓÖÄÜÒ»¶¨³Ì¶ÈÔ¤·ÀÆäËûÎļþ¸ñʽµÄÊä³ö¡£Gmail¾ÍÔøÊ¹ÓÃAJAXµÄ·½Ê½»ñÈ¡JSON£¬Í¨¹ýÔÚÊä³öJSON֮ǰ¼ÓÈëwhile(1);ÕâÑùµÄ´úÂë·ÀÖ¹JavaScriptÔ¶³Ìµ÷Óá£
|