【发布时间】:2021-08-09 00:27:50
【问题描述】:
所以我有一个用户可以注册的 React Native 应用程序。 React Native 使用普通的 JavaScript Fetch API:
fetch("http://myip:8000/api/account/register/", {
method: "POST",
headers: {
"Accept": 'application/json',
"Content-Type": "application/json"
},
body: JSON.stringify({
username: username,
password: password,
email: email
})
})
.then(response => {
return response.json()
})
.then(data => {
afterRegister(data)
}
.catch(error => {
console.log(error)
}
})
问题是,我也可以从例如发出 POST 请求 POSTMAN :/ 我想到了一个安全代码,我需要将它添加到正文中(硬编码),只有拥有该代码的客户端才能发出 POST 请求。这样的代码可能如下所示:Dhiuw1298md()AJM8d9j289j)N ASIDH)8zh2n1ujD)(AZwh98em9812z)(ZDM)("ZM)8mdwuJio2h1hn398 等等...
但是现在如果我这样做并且用户在应用程序中注册,他/她也可以使用中间人攻击来获取代码和垃圾邮件POST请求 到服务器,直到服务器崩溃。
如何防止用户看到带有中间人攻击的 HTTPS POST 请求的内容?
【问题讨论】:
-
您的示例中没有使用
https。你在你的应用程序中使用https吗?如果是这样,您如何验证/检查服务器证书? -
用户不需要在中间人自己查看 https 请求的内容 - 传输加密可以防止 其他 人阅读用户的内容发送。
标签: javascript man-in-the-middle