当前位置: 首页 > 知识库问答 >
问题:

只允许授权的AJAX请求

仉明知
2023-03-14

简化:在我的JS/PHP应用程序中,我有一个按钮。当用户单击按钮时,他得到1分,该分数通过jQuery AJAX/PHP保存在数据库中。

当然,用户现在可以调用发出AJAX请求的脚本,而无需单击按钮。有没有避免这种情况的最佳做法?

我使用AJAx是因为我不想重新加载页面。

更新:还有许多其他选择,用户可以如何赚取积分。理想情况下,我会有一个JS函数add_points(点),为用户添加点。但是我知道任何人都可以写一个脚本来自动调用这个函数。我想唯一的方法是在每个可能的积分赚取操作中生成一个哈希,并用AJAX请求提交这个哈希。

共有3个答案

孙修德
2023-03-14
if(!empty($_SERVER['HTTP_X_REQUESTED_WITH']) && strtolower($_SERVER['HTTP_X_REQUESTED_WITH']) == 'xmlhttprequest') {
    /* special ajax here */
    die($content);
}
易宣
2023-03-14

如果允许用户点击任意次数,就没有真正的方法阻止自动点击。如果她只需单击一次(如stackoverflow上的向上投票),则服务器用于更新值的代码应自动确认她在检查数据库之前没有单击该值。

仲孙宇定
2023-03-14

你可以做的一件事是生成一个哈希,并检查这个哈希是新的还是在最后一天没有使用,例如...确保用户必须得到一个新的哈希才能按下按钮。

 类似资料:
  • > 不是在某人试图登录时自动创建帐户,而是要求已经存在一个具有完全相同电子邮件/用户名的帐户,并在特定用户试图登录时根据电子邮件链接它们。 自动创建一个帐户第一次用户登录使用谷歌,链接他们,但需要管理员手动激活帐户之前,它可以使用 前2的组合。启用注册,允许用户注册一个帐户,并要求管理员激活帐户,在这一点上,用户可以链接他们。

  • 问题内容: 在我的项目中,我需要允许其他人向我的脚本发送ajax请求。因此,外部请求可能来自其他网站和域,也可能来自浏览器扩展。 我在脚本顶部仅添加了以下两行,以使它们能够做到: 现在我的问题是:这里是否遗漏了任何安全方面的考虑?这个简单的解决方案会带来严重的问题吗? 如果是这样,什么是更好的解决方案? 感谢您的回复。 问题答案: 如上所述,任何人都可以随时向您的页面发送请求:因此,您需要考虑的主

  • 在我的项目中,我需要允许其他人向我的脚本发送ajax请求。因此,外部请求可能来自其他网站和域,也可能来自浏览器扩展<我只是在我的脚本顶部添加了这两行,让他们完成这项任务: 现在我的问题是:这里有我错过的任何安全考虑吗?这个简单的解决方案会产生严重的问题吗? 如果是,更好的解决方案是什么? 感谢您的回复。

  • 我试图从我的新Angular应用程序中调用REST web服务。当发出请求时,我会得到以下错误: XMLHttpRequest无法加载http://localhost:8080/WebService。请求的资源上没有“访问-控制-允许-来源”标头。因此,不允许访问源“http://localhost”。 我发现这是因为浏览器不允许这样的操作。 编辑我也试着把它添加到我的angular应用程序中:

  • 请求头字段access-control-allow-headers本身在飞行前响应中是不允许的

  • 我有一个aspx页面,我将jquery ajax post请求发送到我的web服务。我已经将授权头添加到post调用中。我的代码是:- 在Web.config中,我添加了:- 响应头视图源:- access-control-allog-headers:origin,x-requested-with,Content-Type,Accept access-control-allog-methods:g