AJAX请求的安全性

Sim*_*mon 5 javascript security ajax jquery

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

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

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

我从db(使用json)获取现有用户名的数组,然后验证,如果new_username不是inArray()现有的usernames,我发出另一个请求,并注册用户.

安全呢?meybe黑客可以找到改变我的一些if-else陈述的方法,整个我的证券会制动.

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

谢谢

Fel*_*ing 12

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

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

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

更新:

是否涉及jQuery并不重要.客户端可以读取您发送给客户端(并且没有散列加密)的所有内容,无论是XMLHttpRequest还是"正常"请求都无关紧要.

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


摘要:

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


Ben*_*n S 6

你为什么要实现任何客户端?

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

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

  • 请记住,您在客户端上执行的任何操作都可以由用户进行修改和查看.只要您需要执行安全操作,就需要让服务器进行验证. (2认同)

Nic*_*unt 5

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

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