【问题标题】:Prevent Man in The Middle Attack防止中间人攻击
【发布时间】: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


【解决方案1】:

我也可以从例如发出 POST 请求。邮递员:/

[...] 向服务器发送垃圾邮件 POST 请求,直到服务器崩溃。

代码仅对身份验证有用,即识别哪个用户正在向您的服务器发送请求(如果代码在所有用户之间共享,即基本上是公开的,那就不好了)。它对DoS attack 没有帮助 - 这就是防火墙的好处。

【讨论】:

    猜你喜欢
    • 2013-03-28
    • 1970-01-01
    • 1970-01-01
    • 2011-03-05
    • 2012-04-07
    • 2015-09-15
    • 1970-01-01
    • 2021-11-14
    • 2021-11-03
    相关资源
    最近更新 更多