
我遇到過一位線上遊戲用戶的說法,根據他與一位版主的談話,遊戲引擎可以立即識別案例,當用戶使用多個帳戶玩遊戲時,當它們是在同一台電腦。他明白,它必須與網卡做更多的事情,然後是計算機,所以我很快就確定了,唯一的可能是讀取MAC地址(用戶可以使用多個瀏覽器,可以重裝系統,並且安全性是無論如何都要工作)。
我對這句話非常感興趣。瀏覽器遊戲(用 PHP 編寫)是否可以實際存取並讀取我的 MAC 位址? ActiveX 則不然,因為只有一小部分玩家使用 IE。我知道沒有標準機制允許這樣做,但我不是專家...
讀取 MAC 位址的能力會對隱私造成巨大的威脅,所以這非常令人不安...
答案1
通常,除非 Web 伺服器和用戶端位於相同乙太網路段,否則提供 PHP 服務的主機只能從使用者的瀏覽器辨識出用戶端 IP 位址,而無法辨識附屬的 MAC 位址。這是因為 MAC 是鏈路本地位址,路由器不會轉送具有鏈路本地位址的封包。因此,如果Web伺服器和用戶端之間至少有一台路由器,則Web伺服器只會看到距離它最近的路由器的MAC。
也就是說,可以使用客戶端 JavaScript 來偵測 IE 中的 MAC,該 JavaScript 透過 ActiveX 橋接到 NIC。看到這個堆疊溢位帖子了解更多詳情。
或者,Java 小程式也可以在其他瀏覽器中使用。其安全等級是在 Java 運行時環境策略檔案中設定的,因此如果使用者允許存取系統信息,則小程式可能會獲取 MAC。
TL;DR —— 除非瀏覽器啟用了可以橋接到作業系統的技術(例如 ActiveX、Java 小程式等),否則瀏覽器無法偵測到用戶端 MAC 位址。