为什么通过HTTP的AJAX身份验证被认为是不安全的?

时间:2010-11-15 09:45:57

标签: ajax security authentication web-applications

让我们考虑下一个场景:假设我有一个Web应用程序,用户身份验证是通过模式对话框窗口执行的(假设,当用户单击登录按钮时,发送ajax请求并根据回调我要么关闭窗口或显示错误),我使用仅HTTP 协议。为什么它被认为是不安全的做事方式?

另外,请确保考虑模态对话窗口,因为这是至关重要的信息。对话窗口下可能会显示一些数据,如果模态被破坏,则可以访问这些数据。

问题包括:

  1. 如何破坏应用安全性 利用ajax电话?
  2. Ajax HTTP安全性低于 常规格式HTTP?

6 个答案:

答案 0 :(得分:10)

谁告诉你 - 他错了。与使用常规表单的帖子相比,ajax通过帖子不太安全。仅仅因为它是相同的东西

根据上一次编辑

更新1

  1. 你不能
  2. 没有
  3. 参数:AJAX请求与任何其他请求(例如html表单发送的请求)是相同的http请求。 绝对相同。因此,根据定义,它不会更低或更安全。

    我不知道如何解释更多以及说什么:ajax是一个http请求。当您打开SO页面或发布SO问题表单时,与浏览器相同的请求。

    我可以将你的问题改为“为什么A不如A安全”。回答:A的安全性不低于A,因为A是A:-S

答案 1 :(得分:2)

任何敏感数据都应通过HTTPS传输。 GET数据在查询字符串中发送。 POST数据在HTTP Request标头中发送。 Ajax可以做到这两点。两者都不安全。您需要通道级加密才能真正保护它。

答案 2 :(得分:1)

HTTP对私有数据不安全,因为数据是以纯文本格式传输的。这可以在客户端和服务器之间的任何地方截获(例如,wifi。)基于HTTPS的Ajax会好得多。

答案 3 :(得分:1)

我认为问题在于您使用的是http。无论你如何看待它都不会安全。如果您使用https,则ajax请求将与html表单一样安全。

Somy的回答是使用https,你将全部设定。

答案 4 :(得分:0)

我不是安全专家,但我认为通过HTTPS发送它可能更安全。只是谷歌搜索告诉我,它可以安全地完成:

http://www.indicthreads.com/1524/secure-ajax-based-user-authentication/ http://msdn.microsoft.com/en-us/magazine/cc793961.aspx(专注于ASP.NET) 等

答案 5 :(得分:0)

由于浏览器对HTTP和HTTPS使用相同的网络堆栈,无论是否为AJAX,都没有区别。所有标题,cookie,身份验证等都完全相同。