JavaScript的securty:AJAX调用来记录用户的屏幕分辨率,是可以防止假电话号码?

StackOverflow https://stackoverflow.com/questions/908283

这是一个JavaScript安全问题:假设一个页面发现电脑的屏幕分辨率,如1024×768,并希望使用一个AJAX调用这个数据登录到数据库

有没有办法真正阻止进入DB假数据?我认为,无论HTML或JavaScript确实,用户可以反编译代码,使一些假号码来获得进入数据库,或者是有没有办法阻止它完全发生? (100%安全的)。

更新:或类似的情况......如果我写了一个简单的JavaScript游戏...有用户的方式发回由AJAX得分和谎言关于他们的成绩?

有帮助吗?

解决方案

如果你开始假设你正在与之通信的用户是恶意的,则没有;没有什么可以做,以控制哪些数据,他们与你擦肩而过。当然不是100%的把握 - 在最坏的情况下,他们可以使用网络工具来重写或替换任何“正确”的内容与他们想要

如果你只是想防止随意恶意,你可以混淆或加密你的代码和/或数据。这不会阻止一个确定的攻击者。

如果你确实相信真正的用户,但怀疑其他人可能会试图模仿他们,也可以使用其他技术,如动态金丝雀:向用户发送一个随机数,如果他们返回相同的号给你,你就知道它真的从他们那里。 (或者你被一个中间人攻击击中,但嘿。这就是SSL是)

其他提示

这是不可能从从JavaScript发送任何他们喜欢的数字后面阻止用户。

我认为你能做的最好的是做一些检查在服务器端,以确保发回的数字看起来像一个现实的解决方案。

我不知道为什么有人会花时间摆在首位,以欺骗这些数字虽然。

是的,你是正确的。由于您使用的客户端代码,你必须告诉 用户的计算机(并且因此用户)以这种或那种方式,你使用任何加密或混淆。有没有办法解决它。

有关的分辨率,这将基本上是不可能的,以确定是否它是有效的分辨率。我的分辨率通常被发送到服务器为5120 x 1600的,这似乎很不切实际的,但它是因为这2个屏幕经常被作为1。否则,有在屏幕分辨率和屏幕配置的这样一个巨大的各种可能性,你” ð可能删除了很多有效的人,虽然他们可能是少数。

有关的游戏分数,你可以做其他检查,使其更复杂的检查。比如像整个游戏发送得分的多个通知,并要求X号,以确保所收到的得分是有效的。 (IE,必须接受一个200-300之间,400-500,700-800,然后1000的最终得分)随着最后的比分,你也可以有某种加密值只能使用一次或包含一些数据上有一个CRC。基本上,在结束时,需要接收其他数据不仅仅是得分,特别是对于更高的分数。

要通过拟订关于由多克提出的意见试图回答,和你自己,还有操作的应用程序,以“骗”出来的东西有明显的区别,无论是在线业务得到的东西便宜或MMPORG到获得更多的经验,比在它错误地呈现界面,并减少该特定整体用户体验(黑客?)用户。

这样的方式操纵它

您最好将时间花在关注自己的网站的其他方面。我不建议我的网站的用户操纵HTML,使它看起来好笑自己的机器上,但我不打算全力以赴,混淆我的服务器输出从伤害自己阻止他们。在你的情况,范围检查针对预先定义的安全值,利用该DB的,以确保用户正在观看与“允许的”分辨率使你的应用不必要的负担,并且需要时间来做。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top