Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/445.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
javascript安全性:记录用户的AJAX调用';s的屏幕分辨率,是否可以防止假数字?_Javascript_Security_Csrf_Javascript Security - Fatal编程技术网

javascript安全性:记录用户的AJAX调用';s的屏幕分辨率,是否可以防止假数字?

javascript安全性:记录用户的AJAX调用';s的屏幕分辨率,是否可以防止假数字?,javascript,security,csrf,javascript-security,Javascript,Security,Csrf,Javascript Security,这是一个javascript安全问题:假设一个页面发现了计算机的屏幕分辨率,例如1024x768,并希望使用AJAX调用将该数据记录到数据库中 是否有一种方法可以防止伪造数据进入数据库?我认为无论HTML或Javascript做什么,用户都可以对代码进行反向工程,以便将一些假数字输入数据库,或者有什么方法可以完全防止这种情况发生?(100%安全) 更新:或在类似情况下。。。如果我写一个简单的javascript游戏。。。用户有没有办法通过AJAX发回分数并谎报他们的分数?不可能阻止用户从Java

这是一个javascript安全问题:假设一个页面发现了计算机的屏幕分辨率,例如1024x768,并希望使用AJAX调用将该数据记录到数据库中

是否有一种方法可以防止伪造数据进入数据库?我认为无论HTML或Javascript做什么,用户都可以对代码进行反向工程,以便将一些假数字输入数据库,或者有什么方法可以完全防止这种情况发生?(100%安全)


更新:或在类似情况下。。。如果我写一个简单的javascript游戏。。。用户有没有办法通过AJAX发回分数并谎报他们的分数?

不可能阻止用户从JavaScript发回他们喜欢的任何数字

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


我不知道为什么一开始就有人会花时间伪造这些数字。

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

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


我不知道为什么一开始会有人花时间伪造这些数字。

是的,你是对的。因为您使用的是客户端代码,所以必须告诉
用户的计算机(以及用户)以这种或那种方式,无论您使用的是何种加密或模糊处理。这是没有办法的

是的,你是对的。因为您使用的是客户端代码,所以必须告诉
用户的计算机(以及用户)以这种或那种方式,无论您使用的是何种加密或模糊处理。这是没有办法的

对于分辨率,基本上不可能确定它是否是有效的分辨率。我的分辨率通常以5120 x 1600的形式发送到服务器,这似乎很不现实,但这是因为2个屏幕通常以1的形式发送。否则,在屏幕分辨率和屏幕配置中存在着各种各样的可能性,您可能会删除很多有效的选项,尽管它们可能很少


对于游戏分数,您可以进行额外的检查,使检查更加复杂。比如在整个游戏中发送多个分数通知,并要求X号以确保收到的分数有效。(即,必须接收一个介于200-300、400-500、700-800之间的值,然后是最终分数1000。)对于最终分数,您还可以拥有某种加密值,该值只能使用一次,或者包含一些带有CRC的数据。基本上,最终需要接收除分数之外的其他数据,尤其是对于分数较高的数据。

对于分辨率,基本上无法确定它是否是有效的分辨率。我的分辨率通常以5120 x 1600的形式发送到服务器,这似乎很不现实,但这是因为2个屏幕通常以1的形式发送。否则,在屏幕分辨率和屏幕配置中存在着各种各样的可能性,您可能会删除很多有效的选项,尽管它们可能很少


对于游戏分数,您可以进行额外的检查,使检查更加复杂。比如在整个游戏中发送多个分数通知,并要求X号以确保收到的分数有效。(即,必须接收一个介于200-300、400-500、700-800之间的值,然后是最终分数1000。)对于最终分数,您还可以拥有某种加密值,该值只能使用一次,或者包含一些带有CRC的数据。基本上,最终需要接收除分数之外的其他数据,尤其是分数更高的数据。

如果您开始时假设与您通信的用户是恶意的,则不需要;您无法控制它们传递给您的数据。当然不是百分之百确定的——在最坏的情况下,他们可以使用网络工具重写或替换任何他们想要的“正确”内容

如果您只是想防止偶然的恶意,您可以混淆或加密您的代码和/或数据。这不会阻止坚定的攻击者


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

如果你开始时假设与你通信的用户是恶意的,那么就没有;您无法控制它们传递给您的数据。当然不是百分之百确定的——在最坏的情况下,他们可以使用网络工具重写或替换任何他们想要的“正确”内容

如果您只是想防止偶然的恶意,您可以混淆或加密您的代码和/或数据。这不会阻止坚定的攻击者


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

要想通过详细说明Dok和你自己的评论来尝试回答这个问题,操纵应用程序“欺骗”它是有明显区别的,无论是在线业务获得更便宜的东西,还是MMPORG获得更多的体验,都比以错误呈现界面并降低特定(黑客?)用户的总体用户体验的方式进行操作要好

Y