【问题标题】:AJAX request to PHP file, security and accessibility for the PHP file对 PHP 文件的 AJAX 请求、PHP 文件的安全性和可访问性
【发布时间】:2019-01-17 07:37:56
【问题描述】:

我有一个小的 AJAX 脚本,它将 GET 变量传递给接收的 PHP 文件,我们称之为AJAX_RECEIVER.php

此文件执行数据库查询,并根据 GET key-value 对返回一个 responseText,然后将其输入 HTML 元素。

我有一些问题

1)如何防止有人通过在浏览器的URL中输入这个AJAX_RECEIVER.php文件来随机访问它?

2) 我如何确保只有“有效”登录用户才能从AJAX_RECEIVER.php 获得有意义的响应? 文件

3) 如何使用 POST 将键值对传递给此 AJAX_RECEIVER.php?

4) 我想我可以将会话变量的值设置为表示有效用户已登录的值,并使用 POST 将其传递给 AJAX_RECEIVER.php,它会进行检查并仅返回合法的值一个有效的用户,我只是有点不确定这是否是最好的方法……还是有其他方法?

很抱歉,如果我的问题听起来有点重复或可能已在其他地方得到解答,我们将不胜感激。 附言我不想使用 JQUERY(对 Javascript 非常满意,如果我可以用简单的 Javascript 做同样的事情,我不想再花几天时间学习另一件事)

【问题讨论】:

  • 只需在AJAX_RECEIVER.php 文件中添加会话检查。你的所有问题都会迎刃而解。
  • 感谢 Abhishek,但我想这意味着我必须通过 post 将 key-vaues 传递给 AJAX_RECEIVER.php.. 我该怎么做?
  • 您不必在 post 中传递任何参数进行身份验证。您的获取请求将正常工作。只需在文件顶部添加会话检查。如果您不使用会话,则需要传递 post 参数进行身份验证
  • 查找执行 ajax 调用的 javascript,您可以将类型从 get 更改为 post there。

标签: php ajax security post


【解决方案1】:

如何防止有人通过在浏览器的 URL 中输入这个 AJAX_RECEIVER.php 文件来随机访问它?

你不能。

如何确保只有“有效”登录用户才能从 AJAX_RECEIVER.php 获得有意义的响应?

这与确保只有有效的登录用户才能从任何其他 PHP 程序获得有意义的响应的方式相同。 (大概,您正在使用某种基于会话的身份验证,使用它)。

如何使用 POST 将键值对传递给此 AJAX_RECEIVER.php?

有很多方法。将FormData 对象传递给fetch 可能是最简单的。

var formData = new FormData(document.querySelector("form"));
fetch('/AJAX_RECEIVER.php', {
  method: 'POST',
  body: formData
});

我想我可以将会话变量的值设置为 表示有效用户已登录,

这就是大多数登录系统的工作方式

并使用 POST 将其传递给 AJAX_RECEIVER.php

只需继续使用相同的会话 cookie 来传递 数据。不要将其复制到发布请求的正文中。这样可以很容易地伪造登录状态。

【讨论】:

  • 谢谢昆汀,所以我做了这样的事情而不是使用表单数据,你认为它“安全”吗? var AJ = 新的 XMLHttpRequest(); AJ.onreadystatechange = function() { if((AJ.readyState == 4) && (AJ.status == 200)) { var elem = document.getElementById("EL_ID"); elem.innerHTML = AJ.responseText; }} var PARAM = "NAME1=" + VALUE1 + "&NAME2=" + VALUE2; AJ.open("POST", "AJAX_RECEIVER.php" + PARAM , true); AJ.send(参数);它工作正常;发送并获得期望的结果,想知道这是否是“良好做法”或存在一些漏洞;如果您能提供建议,那就太好了,谢谢伙计!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2012-06-05
  • 2015-02-21
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-02-14
相关资源
最近更新 更多