我有一个场景,用户通过 ASMX Webservice 将事务日志上传到主服务器。该应用程序是 clickonce .Net winforms 应用程序
目前我正在这样做将对象列表转换为 Json 并在服务上反序列化它。通过 SSL。
string data = JsonConvert.SerializeObject(Values_Static.logitems);
我的代码受 SmartAssembly 保护。而且我仍然得到一些漏洞,攻击者可以访问网络连接并可以对数据进行反序列化。
现在我在想一个场景,我用一些私有字符串密钥加密 Json 字符串,然后在服务器上解密它。
例如
private string salt = "$e7?8f@l4";
return ByteArrToString(Encrypt(TextValue + salt));
在应用程序中硬编码密钥并在服务器中对其进行解码。
它会起作用吗?用户每分钟将日志上传到服务器,每次上传可能有 20-30 个条目。是否有任何破坏数据或仍然黑客攻击的机会?
更新:根据下面的讨论。我了解我的代码存在一些问题。该代码正在接受无效的证书。我如何防止只接受来自我的 https:// Web 服务的有效证书。ATM上,每个人都可以通过开启HTTPS解密的fiddler看到代码。
我在我的 IIS 7 上安装了一个有效的证书。它工作正常,问题出在代码上。及其在 Visual Studio 中的标准自动生成的 Web 参考。
更新 2:最终结果是,Post 数据没有加密,它的纯 XML 并且可以被任何可以嗅探的软件读取,但是 GET 数据是安全的。我已经搜索了一下,没有找到一些有效的答案。