我有一个我正在创建的社交网络,并且有一个安全问题。我有能力在网站上有朋友,当你请求一个朋友,它将是一个按钮,将运行使用jQuery的AJAX脚本。
我知道javascript很容易被黑客入侵,在这里我也读到了http://www.acunetix.com/websitesecurity/ajax.htm,AJAX并不像它看起来那样安全。他们指出,“由于XML HTTP请求的工作原理是使用与web上的所有其他应用程序(HTTP)相同的协议,从技术上讲,基于AJAX的web应用程序容易受到与‘正常’应用程序相同的黑客方法的攻击”。
所以基本上我不希望蠕虫通过我的AJAX函数运行朋友请求,然后有人在网站上签名,他们有1400万个朋友请求。这也是我在站点上运行的其他几个AJAX脚本的问题。我的问题是,我是否应该将所有内容都保留在服务器端。我使用的是php,所以每个朋友的请求都应该像我希望避免的那样重新加载页面吗?请提供任何帮助,我们将不胜感激。
发布于 2011-03-25 04:41:46
如果您有安全方面的顾虑,它们并不是ajax独有的,但是有一些简单的方法可以让事情变得更难处理。
1)正如Diodeus所说--在没有通过会话进行身份验证的情况下,绝对不要让人们使用您的服务。与网站上任何其他需要您登录的页面相同。
2)通过将客户端信息嵌入到会话密钥(cookie)中,并在服务器上进行验证,例如IP地址、浏览器版本,使会话劫持变得更加困难。然而,这仍然是可以欺骗的。
3)如果某个会话在某个时间段内发出了超过x个请求(例如,立即执行10个请求),则将其注销并禁止一小时。设置更高的限制以禁止它们,直到管理员恢复。每当这种情况发生时,让代码给你自己发一封电子邮件,这样你就知道你是否有问题。
4)如果你真的很担心,那就使用SSL。这确实是绝对防止会话劫持的唯一方法(除了为会话数据实现自己的私钥加密机制之外)。
5)如果不使用SSL,您无法阻止会话劫持的可能性,但您可以保护您的用户的密码,使其容易被窥探。进行身份验证时,请执行以下操作:
这样,监视会话的人只能看到散列的密码,而且因为散列每次都是不同的,所以他们不能再次使用该散列登录您的服务。你仍然不能阻止他们劫持会话,但你可以阻止他们看到你的用户的密码或能够自己登录。
在现实中,会话劫持并不是那么常见,尽管高调的实现当然是通过wifi的facebook。如果有人带着Firefox插件入侵你的社交网络,那么你应该感到兴奋,因为你知道你已经成功了。
发布于 2011-03-25 04:43:10
这些并不是AJAX特有的问题。归根结底,它就是检查和清理数据。我假设用户必须先注册/登录,然后才能添加好友(毕竟,否则如何跟踪谁是谁的朋友呢?)因此,这里有一些显而易见的要点需要考虑:
还有更多,但这些应该会让你入门。
发布于 2011-03-25 03:56:20
在客户端上设置登录cookie。将cookie值与ajax请求一起发送,并在服务器上进行验证。
https://stackoverflow.com/questions/5424685
复制相似问题