最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

關(guān)于在IE下的一個(gè)安全BUG --可用于跟蹤用戶的系統(tǒng)鼠標(biāo)位置

 更新時(shí)間:2013年04月17日 11:31:14   作者:  
本篇文章小編將為大家介紹,關(guān)于在IE下的一個(gè)安全BUG --可用于跟蹤用戶的系統(tǒng)鼠標(biāo)位置。需要的朋友可以參考一下

IE下的DHTML有各種MS$的私有特征,已經(jīng)是眾所周知。其中有個(gè)比較有趣就是:event.screenX和event.screenY,可以獲得系統(tǒng)級別的鼠標(biāo)位置坐標(biāo)。

咋一聽,其實(shí)也覺得沒什么。屏幕上的坐標(biāo)無非就是:瀏覽器客戶區(qū)域里的坐標(biāo) + 瀏覽器窗口坐標(biāo) + 客戶區(qū)偏移,僅此而已。

IE本身就可以通過event和screen對象得到各種屏幕和窗體位置有關(guān)的信息。

然而,真正詭異的事還沒開始!按照標(biāo)準(zhǔn)的DOM模型定義,只有在觸發(fā)某個(gè)事件的時(shí)候,才能從event中獲得與該事件相關(guān)的參數(shù)。

也就是說,只有觸發(fā)mousemove,等這類mouseXXX鼠標(biāo)事件時(shí),才有權(quán)獲取和鼠標(biāo)有關(guān)的參數(shù)。然而,在萬惡的IE下,任何事件觸發(fā)后,都能獲取event.screenX和event.screenY,甚至在頁面最小化時(shí)!

當(dāng)然,你可能會說這還是需要依賴一個(gè)事件。然而,這里的事件可以是任意的onxxx這類回調(diào)函數(shù),并非局限于UI事件。于是,我們可以人為的制造它!

最簡單的例子,給一個(gè)new Image設(shè)置一個(gè)無效的src,它的onerror事件立馬就觸發(fā)了!

于是我們可以在onerror里獲取event.screenX,然后繼續(xù)設(shè)置無效的src,于是就可以實(shí)時(shí)跟蹤用戶屏幕級別的鼠標(biāo)指針了。因?yàn)閛nerror的產(chǎn)生不限于任何UI消息,因此頁面最小化或非活動狀態(tài)下,事件仍然能夠觸發(fā)!

至于能不能獲取鼠標(biāo)或鍵盤哪個(gè)鍵被按下,很不幸,真的不可以。如果捕捉全局按鍵,哪豈不是可以監(jiān)聽密碼輸入了。。。

事實(shí)上,onerror這類非UI事件的觸發(fā),根本就沒有任何鼠標(biāo)或鍵盤參數(shù)傳入瀏覽器窗體,所以也就無法獲取各種鼠標(biāo)鍵盤信息。至于event.screenX,唯一的解釋估計(jì)它是event的一個(gè)Getter,內(nèi)部直接調(diào)用了GetCursorPos這個(gè)Win API,并非事件的觸發(fā)者提供了這屬性。

如果某個(gè)頁面植入了這樣的跟蹤代碼,然后將坐標(biāo)位置通過socket.io實(shí)時(shí)傳送回來,豈不是很有趣。。。

相關(guān)文章

最新評論

松潘县| 攀枝花市| 格尔木市| 丰顺县| 沙河市| 镇巴县| 新泰市| 永丰县| 车险| 河源市| 微山县| 安岳县| 万州区| 大关县| 锡林郭勒盟| 揭阳市| 蒲江县| 墨江| 抚顺市| 兴仁县| 黎川县| 莱阳市| 平顶山市| 通许县| 许昌市| 葫芦岛市| 聊城市| 阿拉尔市| 凉城县| 清水河县| 密云县| 门源| 大安市| 工布江达县| 绥德县| 雷波县| 东乡| 长治市| 平遥县| 成都市| 铁岭县|