2014-09-28 49 views
1

当我们想通过ajax发布一些数据到php页面时,任何人都可以看到URL以及正在发布的值。ajax-如何防止浏览器显示ajax url

它可能是非常危险的,有没有什么办法来保证这一点?我是否可以隐藏网址或任何对网址进行编码的方式,以便用户无法看到并访问它?

这是一个示例代码,正如您所看到的,URL可以将数据公开在源代码中,也可以在像Firebug这样的检查器中公开。

function reg_user(id){ 
$(document).ready(function() { 
$.ajax({ 
    type: "POST", 
    url: "reg_user.php", 
    data: "id="+id, 
    success: function(msg){ 
     str=$.trim(msg) 
     if (str=='ok'){ 

     } 
    } 
    }) 
}) 
}; 

感谢

+0

您可以使用htaccess和modrewrite更改网址。 – 2014-09-28 07:24:15

+6

简短回答:不可以,尤其是使用开发工具或wireshark时。我建议你改为保护服务器。 – Joseph 2014-09-28 07:24:26

+0

*它可能是非常危险的* ...其他网站如何做同样的事情,没有掩盖的URL ... – 2016-08-04 08:49:40

回答

1

没有你导航将通过浏览器的工具栏上的发展或净捕获工具,如Wireshark的被捕获的url way.all。

Ajax是一种使javascript能够发送http请求的工具,但javascript无法加密http消息。当调用ajax函数时,它意味着告诉浏览器现在发送一个http请求。

即使javascript有能力加密http消息,您需要在您的JavaScript代码中编写加密密钥。

我犯了一个错误,总的http消息在https中被加密,包括头文件和请求体,但是这个函数是由browser.If在https网站中使用ajax,javascript告诉浏览器发送https请求,浏览器负责加密发送消息。

0

不,用户将始终能够通过开发工具或某个网络监视工具找出您正在进行的调用。您可以压缩和缩小JavaScript,但开发人员将始终能够找到您的URL调用。

同意@JosephtheDreamer评论:客户端的每一件事情都将是可见的只是保护你的服务器端。

相似问题;

How to hide details in jquery ajax from browser page source

好运

0

你应该保护您的服务器和您的客户端和服务器应用程序之间的连接。

您可以使用HTTPS进行通信,使用POST在头中传递的数据将自动使用HTTPS进行加密。

为了隐藏你的API URL你可以考虑使用代理服务器,这样你的客户端应用程序就会调用代理服务器,而代理服务器就是你真正的API。通过这种方式,在检查来自客户端的请求时,只有代理服务器的URL可见。