远程发送ajax请求的安全问题?

时间:2011-01-31 13:39:11

标签: php ajax security

iam使用ajax将请求发送到我网站上的某个php页面...但我是从我的html页面执行此操作。这是安全的......

但是,如果其他人知道我的php页面并且他们从脚本向该页面发送ajax请求怎么办?这可能会导致任何安全问题。

我该如何避免这种情况?

3 个答案:

答案 0 :(得分:3)

你似乎试图防范CSRF attacks

您可以在页面中包含nonce,然后要求所有AJAX请求都具有该nonce 由于攻击者位于不同的域中,因此无法获取现有的域名。

答案 1 :(得分:1)

他们可以向您的网页发送AJAX请求的唯一方法是,如果他们位于同一个域(即他们的脚本必须在您的域上托管)。

AJAX不会跨域工作,所以它非常安全。

答案 2 :(得分:1)

你可以做很少的事情来阻止这种情况,唯一可以帮助防止这种情况的想法就是拥有一个良好的应用程序架构。

例如,以下规则将有所帮助:

  • 尝试将Ajax保持为只读。
  • 如果您必须使用Ajax编写,那么您应该遵循这些规则
    • 仅允许登录的用户提交数据
    • 验证验证&验证您的帖子数据,确保其完全符合您的预期
    • 实现表单散列技术,为每个页面上的每个表单生成唯一的哈希值,并根据会话Aka中的变量进行验证(Nonce
    • 如果用户已登录,请确保有一个验证期,例如“您必须在发布前等待30秒”。
    • 在致电session_regenerate_id()
    • 之前始终使用session_start

这些只是一些可以帮助您的方法,在研究这些时,您会遇到其他网站所有者使用的其他技术,但您应该始终记住以下2条规则。

  • 永远不要相信您的用户,只是表现得像
  • 白名单,永不黑名单。