Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/450.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ajax/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何正确保护AJAX调用?_Javascript_Ajax_Json_Api - Fatal编程技术网

Javascript 如何正确保护AJAX调用?

Javascript 如何正确保护AJAX调用?,javascript,ajax,json,api,Javascript,Ajax,Json,Api,网站从远程RESTful API请求URL,然后返回包含敏感数据的JSON对象 我如何保护来自“客户”的电话?如果我发送任何标题或post数据进行身份验证(密钥、凭据等),它仍然会对用户可见,并且无法达到目的 基本上,我如何确保某人不能在他们的浏览器中通过AJAX调用相同的URL并保护敏感数据?如果我使用post参数,它们将在javascript代码中可见 $.post({ url: ..., username: ..., password: ..., key:

网站从远程RESTful API请求URL,然后返回包含敏感数据的JSON对象

我如何保护来自“客户”的电话?如果我发送任何标题或post数据进行身份验证(密钥、凭据等),它仍然会对用户可见,并且无法达到目的

基本上,我如何确保某人不能在他们的浏览器中通过AJAX调用相同的URL并保护敏感数据?如果我使用post参数,它们将在javascript代码中可见

$.post({
    url: ...,
    username: ...,
    password: ...,
    key: ...,
    ...
});

嗯,我认为您可以使用令牌进行身份验证,并在n次请求后使其过期。但是,除非您处理(加密)数据,否则用户将可以看到要从浏览器发送到服务器的任何数据


或者,您可以使用SSL、OAuth或任何其他协议来确保连接的安全。

您当前的事件链:

提交的用户表单->JS添加敏感参数->发送给第三方的所有信息->JS解析响应等

你应该为之奋斗的目标:

用户表单提交->所有信息发送到您的服务器->服务器添加敏感参数->服务器卷曲到第三方->服务器接收响应->服务器与用户通信

这个故事的寓意是什么


客户端Javascript不应用于保护通信安全或加密数据,句号。您在这里使用的PHP(如果有的话)可能重复?您不能。所有数据都必须是javascript格式,javascript才能发送,如果是javascript格式,客户端可以查看、复制数据,然后通过fiddler或postman等工具自己发送请求,并以任何方式进行修改。@Oka我明白了,把它排除在外是你的决定,但希望我的答案现在达到了标准。由于您在示例中描述了一个完整的堆栈,因此没有任何内容脱离上下文,其中后端可能用JavaScript编写,也可能不用JavaScript编写。