刚才我正在编写一个项目,我决定用jquery
和ajax
个请求来编写它。
唯一的事情,我不知道,它足够安全吗?
例如,当我验证用户名时,在注册新用户时,我使用jquery ajax请求,
我从db(使用json)获取现有用户名数组,然后验证,如果现有new_username
的{{1}}不inArray()
,我再发出请求,并注册用户。
但安全呢? meybe黑客可以找到改变我username
一些陈述的方法,整个我的证券都会制动。
也许你会帮我理解这种情况?
谢谢
答案 0 :(得分:12)
(在下面我假设,username
是用户可以登录的ID,而不是某种昵称;)
将所有用户名作为JSON获取是不好的。然后攻击者立即获取所有注册用户名 !
只需将用户名发送到服务器,在那里验证并发送“有效”或“无效”作为响应。即,检查服务器端的可用性。
始终验证服务器端上的用户输入。可以禁用JavaScript。
<强>更新强>
是否涉及jQuery并不重要。 您发送给客户的所有内容(并且不是散列或加密)可由客户读取,它无论是XMLHttpRequest还是“普通”请求都无关紧要。
您是否会将包含所有用户名的HTML表格发送给您网站的任何访问者?我希望不是:)
<强>要点:强>
答案 1 :(得分:6)
为什么要实现该客户端的任何?
您应该在AJAX查询中通过HTTPS发送用户名/密码,并让服务器仅响应用户继续前进所需的数据,不整个用户名列表。
即使把安全放在一边,如果你有数百万用户怎么办?您要将该列表发送给所有客户,以便他们登录吗?
答案 2 :(得分:5)
Ajax不是服务器端代码的替代品。虽然可以使用ajax实现登录和注册功能,但您仍需要在服务器上验证和存储数据。
更合理的实现只是向服务器发送一个https请求,其中包含服务器将以yay或nay响应的用户名和密码。
答案 3 :(得分:2)
如果可能的话,安全性是服务器端最好的事情之一。我对AJAX登录的典型方法是将用户名和MD5或SHA1哈希密码发送到服务器上的方法,然后该方法将处理所有登录详细信息。该实现的细节将真正取决于您的服务器端技术,但大多数Web应用程序框架都有适当的工具来实现。甚至可能有一些解决方案包括Javascript库来处理客户端工作。