防止欺骗攻击 - 如何确保我的客户端收到来自真实服务器的订单?

问题描述

我正在开发与网站集成的 Chrome 扩展程序。我的用户可以在登录该网站后在该网站上执行操作。

我有一个 Socket.IO 服务器,可以向我的 Chrome 扩展程序发送命令。一旦命令到达,扩展程序就会从主机网站调用本地函数。然后,拥有经过身份验证的活动会话及其自己的 API 的主机网站将调用一些更新/插入调用

Normal flow

我最近意识到一个潜在的安全问题,那就是 - 如果有人在我的扩展客户端组织中欺骗我的服务器地址,他可以很容易地滥用它来代表我的服务器 (image 2) 发送他自己的参数。

有什么聪明的方法可以确保我的客户端与真实服务器通信而不是冒名顶替者?

解决方法

使用 HTTPS 安全连接。

这是 HTTPS (SSL/TLS) 的特性之一——它可以防止 MITM 攻击并防止目标服务器被冒充。

https://stackoverflow.com/a/24586398/12595469