使用JavaScript获取用户计算机的独特之处?

gka*_*kck 7 javascript html5

这是一个想法:如果我能从HTML页面(可能是MAC地址)获得带有JavaScript的计算机的独特之处,那么我可以将此数据用作另一个安全检查吗?那可能吗?

我不打算在客户端检查计算机,我将把它发送到服务器进行检查.如果没有发送任何内容,将阻止用户.因此,任何开发人员+萤火虫组合都不能绕过它.我只想再发送一个包含用户名和密码的字符串,这对于计算机是唯一的,没有人知道他们是否没有从该计算机进入系统.就像用户自己隐藏的密码一样.

Pis*_*3.0 5

  • 您可以尝试使用跟踪Cookie; 但请注意,此类机制被视为短暂的(例如,可以删除cookie).浏览器中的JavaScript是沙箱,因此无法访问页面外的组件.另请注意,使用JavaScript获得的任何安全感都是虚幻的 - 脚本在客户端运行,可以在其中进行修改(因此无法判断"唯一"数据是真实的还是伪造的)或者完全禁用.

  • 如果您试图阻止随机人员攻击您的应用,您可能希望在经过一定数量的失败尝试后禁用它们.这不会给你任何安全,它更像是一个捕蝇草 - 它有点限制了烦恼.

  • 最后,如果您需要实际的安全性,请使用真实(非自签名)服务器证书和客户端证书进行HTTPS - 请参阅示例以获取实现(但是,该示例使用自签名服务器证书,但不是很安全).这是一种在浏览器本身中很好实现的机制,它为您提供了一个有点安全的系统(配有安全密钥库)来识别您的用户(而不是基本上有缺陷的JS"安全",或者依赖于用户 - 可读文件).哦,你的数据在线上加密,这是一个奖励.

SSL实际上可以满足您的要求:验证客户端计算机是否具有颁发给该用户的证书.这种机制在浏览器内部工作,而不仅仅在网页内部; 因此,与页内JavaScript相比,它更难以颠覆这一点.它存储在一个安全的方式大量唯一标识符(客户方证书),它可以证明到它实际上有标识的服务器-这是相当多的初始需求.

(顺便说一句,使用SSL,数据将在传输过程中受到保护,客户端可以验证服务器的身份;这些不是您的要求,但它们或多或少是必要的,以确保您实际上与真实客户端交谈和真实的服务器)

  • @gkayck:那么,假设在JS中会有一个`getSomethingUnique()`函数,那么什么会阻止用户覆盖该函数以便返回伪数据?(提示:没有) (2认同)