我想限制除我的应用程序之外的 AJAX 调用。我不希望我的 AJAX 请求在从应用程序外部调用时发送响应,即使 AJAX 调用的 url 被复制并粘贴到浏览器中也是如此。我正在使用node、express和mongodb。
最佳答案
我所做的是在我的 ajax 调用中添加一些 header :
// javascript
$.ajax({
type: 'POST',
dataType: 'json',
headers: {"Content-Type": "application/json", "app-ver": 1.5}
})
.
// php
$client_ver = floatval($_SERVER['HTTP_APP_VER']);
// I also check $_SERVER['CONTENT_TYPE'] to be: 'application/json'
// and post method. (ask me I'll add)
if ( $client_ver != 1.5 )
{
echo '{}';
exit();
}
编辑: 另一种方法是与您的应用程序创建一个“ session ”,这意味着成功登录后的每个请求都必须携带一个 token (至少) 并让您的应用程序附加许多唯一的 header 键值,这些键值只能由您的服务器识别,并且没有任何两个请求是相似的(例如:在 header 中包含时间,并使用 REST 命令对其进行哈希处理,并让服务器检查它以确保它是唯一的命令,并且它不仅仅是被操纵的。 * 您必须了解您的 session 创建算法,并且它必须是唯一的,或者如果您不知道如何做到这一点,我建议您对其进行更多研究。
关于javascript - 限制来自 Node 应用程序外部的 Ajax 调用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42362898/