也许这是不正确的,但这不是教程或其他什么,这是一个问题。所以如果不正确,请更正。
情况:
使用GET / POST / PUT / DELETE从客户端向服务器端发送数据。
**
这里只有使用jQuery和AngularJS的POST方法,如上所述的另一个AJAX请求:
$.ajax({
type: "POST",
headers: {
"Content-Type": "application/json"
},
url: "https://www.myawesomedomainname.com",
data: JSON.stringify($scope.fetchData),
success: function(response) {
// some code
},
error: function(err) {
// some code
}
});
安全问题:
可以使用相同的互联网Wifi,并且由于数据未被加密,因此可以看到传输到服务器的数据。这个安全问题叫做:" Man in the middle"。
解决方案:
使用HTTPS加密从客户端到服务器端的传输数据,让中间人看到bla bla bla。
问题:
如果我们希望上述描述能够工作,客户端和服务器端都必须知道加密密钥,否则,目标服务器也会加密数据(就像中间人一样)。 并非每次我们都拥有该权限 - 有时客户端不拥有任何类型的域 - 也许它是一个移动应用程序?
问题:
当我从cordova移动应用程序发送数据到服务器端(服务器端有HTTPS网址)时,它是否安全加密并防止中间人攻击?
答案 0 :(得分:1)
使用HTTPS时,包括URL中主机地址以外的整个请求都会被加密。这包括查询字符串和服务器路径。
基本上MiTM攻击只能通过非常复杂的专用网络攻击者或对客户端设备(例如设备所有者)进行物理访问的攻击者进行非常小的攻击。可以通过固定证书来关闭。通常不需要这样做。
固定证书意味着客户端通过将证书的全部或部分与编译信息进行比较来验证证书是否是正确的服务器证书。许多网络API都包含固定支持。