AJAX请求的安全性

时间:2010-06-22 16:40:50

标签: javascript jquery ajax security

刚才我正在编写一个项目,我决定用jqueryajax个请求来编写它。

唯一的事情,我不知道,它足够安全吗?

例如,当我验证用户名时,在注册新用户时,我使用jquery ajax请求,

我从db(使用json)获取现有用户名数组,然后验证,如果现有new_username的{​​{1}}不inArray(),我再发出请求,并注册用户。

但安全呢? meybe黑客可以找到改变我username一些陈述的方法,整个我的证券都会制动。

也许你会帮我理解这种情况?

谢谢

4 个答案:

答案 0 :(得分:12)

(在下面我假设,username是用户可以登录的ID,而不是某种昵称;)

  1. 将所有用户名作为JSON获取是不好的。然后攻击者立即获取所有注册用户名
    只需将用户名发送到服务器,在那里验证并发送“有效”或“无效”作为响应。即,检查服务器端的可用性

  2. 始终验证服务器端上的用户输入。可以禁用JavaScript。

  3. <强>更新

    是否涉及jQuery并不重要。 您发送给客户的所有内容(并且不是散列加密可由客户读取,它无论是XMLHttpRequest还是“普通”请求都无关紧要。

    您是否会将包含所有用户名的HTML表格发送给您网站的任何访问者?我希望不是:)


    <强>要点:

    • 仅发送允许客户端访问的数据。
    • 验证服务器端的用户输入。
    • 永远不要相信用户输入。

答案 1 :(得分:6)

为什么要实现该客户端的任何

您应该在AJAX查询中通过HTTPS发送用户名/密码,并让服务器仅响应用户继续前进所需的数据,整个用户名列表。

即使把安全放在一边,如果你有数百万用户怎么办?您要将该列表发送给所有客户,以便他们登录吗?

答案 2 :(得分:5)

Ajax不是服务器端代码的替代品。虽然可以使用ajax实现登录和注册功能,但您仍需要在服务器上验证和存储数据。

更合理的实现只是向服务器发送一个https请求,其中包含服务器将以yay或nay响应的用户名和密码。

答案 3 :(得分:2)

如果可能的话,安全性是服务器端最好的事情之一。我对AJAX登录的典型方法是将用户名和MD5或SHA1哈希密码发送到服务器上的方法,然后该方法将处理所有登录详细信息。该实现的细节将真正取决于您的服务器端技术,但大多数Web应用程序框架都有适当的工具来实现。甚至可能有一些解决方案包括Javascript库来处理客户端工作。