通过Ajax将数据从Javascript发送到JSON,再发送到PHP

Sending data from Javascript, to JSON, to PHP via Ajax

本文关键字:JSON PHP Ajax Javascript 通过 数据      更新时间:2023-09-26

我看了很多与这个问题相关的答案,因为这个问题在stackoverflow上被问了很多次。大多数答案似乎都涉及到通过ajax调用的ajaxvariable.send()部分发送数据。我正在考虑使用一个不同的解决方案,我还没有看到张贴(可能是错的,但我看过很多)。然而,由于它没有被张贴或建议在其他地方,我担心我可能会打开安全问题的大门(或任何其他可能是错误的我的方法)。如果以下情况成立,在URL变量中粘贴JSON对象是否有问题?

假设如下:

(1)对象内传递的信息量不大。

(2)将传入JSON对象的变量从发送页面上的数据库中取出,并与接收页面上的数据库进行检查(请注意,不是在查询中直接检查,而是根据PHP数组中放入的可能值的范围进行检查),以确认在对传递的变量值进行任何操作之前没有更改任何内容。

Javascript, JSON(发送页面):

...
var getplaninfo = {};
getplaninfo["initialfee"] = document.getElementById("initialfee").value;
getplaninfo["monthlyfee"] = document.getElementById("monthlyfee").value;
var planinfo = JSON.stringify(getplaninfo);
ajaxRequest.open("GET", "index.php?choice=" + planinfo, true);
ajaxRequest.send(null);

PHP(从包含中替换发送页面上的div内容):

if (isset($_GET["choice"])) {
$returned = $_GET["choice"];
$decode = json_decode($returned,true);
$initialfee = $decode["initialfee"];
$monthlyfee = $decode["monthlyfee"];
}

我问的原因是我对AJAX很陌生。我对PHP中的安全性相当熟悉,但对AJAX还不太熟悉。谢谢你的宝贵时间。

您所读到的示例与您上面的想法之间的区别在于,您通常会通过POST将数据传递给服务器脚本。你的想法运行一个GET请求,并通过那里传递数据。

GET和POST负载的不同之处在于GET有一个限制。在这里阅读更多关于这个限制的信息:不同浏览器中URL的最大长度是多少?

当用户输入没有被正确处理时,在接收数据的脚本中会发生AJAX请求的安全问题。例如SQL注入,XSS