我在WinForms应用程序中嵌入了web浏览器控件。用户在网站上做了一些不属于我的操作。最后(例如在最后一页)我需要向我的服务器发送确认(例如通过网络服务),该用户确实做了他应该做的事。
现在,应用程序正在这个过程中收集一些数据,在用这些数据做了一些奇怪的事情(即通过模糊实现安全)后,它将信息发送到我的服务器。从应用程序发送到服务器的消息是模糊的,并且应用程序是用C++编写的,所以反编译并检查真正发送的内容并不容易。此外,可能破解代码的用户有机会赚很少的钱,而且很容易跟踪他。这种情况从未发生过。
源代码变得不可见,我想用C#重写它。问题很明显:即使是混淆的代码也比旧的原生C++二进制代码更容易破解。
你看到什么"安全"的出路了吗?是否有可能获得类似web浏览器控制(仅https连接)页面的数字签名?除了获取外部页面的用户凭据并代表他在服务器端进行操作之外,我不知道该怎么做,这是完全不可接受的。
您的问题没有告诉我们用户如何获得WinForms应用程序等的范围。但我想说,唯一"万无一失"的方法是在你自己可控的前提下托管这个逻辑和代码。以下是我的两个(昂贵但可行)建议:将此应用程序发布为:
- 使用远程桌面服务的RemoteApp
- Citrix服务器场上已发布的应用程序
同样,在投资和基础设施方面(取决于这件事的广泛程度),这可能有些过头了,但从技术角度来看,这很有吸引力,因为窃听什么样的数据以及将这些信息发送到哪里是不可能的。