Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/security/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 在不受信任的环境中保护数据_C#_Security_Asp.net Web Api_Unity3d - Fatal编程技术网

C# 在不受信任的环境中保护数据

C# 在不受信任的环境中保护数据,c#,security,asp.net-web-api,unity3d,C#,Security,Asp.net Web Api,Unity3d,我一直在寻找,但没有找到一个好的答案,可以帮助我在我的情况下。为了解释这种情况,我正在创建一个Unity3D游戏,它将有一个多人系统为了使播放器数据尽可能安全(这样人们就不会轻易作弊),我决定实现一个连接到SQL Server数据库的Web API 2服务我设计Web服务的方式是,只有当请求包含特定数据时,才会处理该请求。我现在遇到的问题是设计一个解决方案,允许我从Web服务发送/检索数据我实现了SHA-512来发送密码,这样数据包嗅探器就不会以纯文本形式获取密码,我计划实现HTTPS,但Uni

我一直在寻找,但没有找到一个好的答案,可以帮助我在我的情况下。为了解释这种情况,我正在创建一个Unity3D游戏,它将有一个多人系统
为了使播放器数据尽可能安全(这样人们就不会轻易作弊),我决定实现一个连接到SQL Server数据库的Web API 2服务
我设计Web服务的方式是,只有当请求包含特定数据时,才会处理该请求。
我现在遇到的问题是设计一个解决方案,允许我从Web服务发送/检索数据
我实现了SHA-512来发送密码,这样数据包嗅探器就不会以纯文本形式获取密码,我计划实现HTTPS,但Unity类使得这非常困难。我曾想过将RijdnaelManaged作为一种更安全的帐户算法来实现,但在Unity中,代码很容易被反向工程。
这个模型是否足够安全,可以阻止脚本小子入侵玩家帐户?

HTTPS

我实现了SHA-512来发送密码,这样包嗅探器就不会以明文形式获取密码

这对您的Web服务没有帮助,它现在使用哈希作为密码,所以任何嗅探它的人都会捕获它

使用https,而不是http来获得正确的结果

如果您确实不能:构建一个系统,其中服务首先发出质询,然后客户端“签名”该质询并将签名发送回。这仍然不如https好,但它可以防止一些事情(但不能防止中间人攻击)

安全性

如果你考虑分析风险,你需要注意解决游戏用户和第三方的问题

第三方,具有良好的密码(祝你好运)或适当的2因素身份验证、https等。你可以很好地覆盖基础。在webservices中添加一些安全性,您应该是一个很好的方法

但你也必须与游戏用户打交道。这比看起来更难,因为他们可以在调试器中运行游戏,并找出游戏如何与服务器通信,何时发送,效果如何等。如果你有一个多人游戏,通常涉及可以获得和/或交易的虚拟商品和/或货币。狡猾的玩家会试图以简单的方式获得它,因此你也需要以某种方式加以保护。
最简单的方法是将游戏逻辑移动到服务器中,并仅将客户端用于可视化,但这显然意味着您要更多地利用服务器资源。。。 信任您的客户正在运行,未经修改,并且您正在与它交谈:您不能…

HTTPS

我实现了SHA-512来发送密码,这样包嗅探器就不会以明文形式获取密码

这对您的Web服务没有帮助,它现在使用哈希作为密码,所以任何嗅探它的人都会捕获它

使用https,而不是http来获得正确的结果

如果您确实不能:构建一个系统,其中服务首先发出质询,然后客户端“签名”该质询并将签名发送回。这仍然不如https好,但它可以防止一些事情(但不能防止中间人攻击)

安全性

如果你考虑分析风险,你需要注意解决游戏用户和第三方的问题

第三方,具有良好的密码(祝你好运)或适当的2因素身份验证、https等。你可以很好地覆盖基础。在webservices中添加一些安全性,您应该是一个很好的方法

但你也必须与游戏用户打交道。这比看起来更难,因为他们可以在调试器中运行游戏,并找出游戏如何与服务器通信,何时发送,效果如何等。如果你有一个多人游戏,通常涉及可以获得和/或交易的虚拟商品和/或货币。狡猾的玩家会试图以简单的方式获得它,因此你也需要以某种方式加以保护。
最简单的方法是将游戏逻辑移动到服务器中,并仅将客户端用于可视化,但这显然意味着您要更多地利用服务器资源。。。 信任您的客户正在运行,未经修改,并且您正在与它交谈:您不能…

HTTPS

我实现了SHA-512来发送密码,这样包嗅探器就不会以明文形式获取密码

这对您的Web服务没有帮助,它现在使用哈希作为密码,所以任何嗅探它的人都会捕获它

使用https,而不是http来获得正确的结果

如果您确实不能:构建一个系统,其中服务首先发出质询,然后客户端“签名”该质询并将签名发送回。这仍然不如https好,但它可以防止一些事情(但不能防止中间人攻击)

安全性

如果你考虑分析风险,你需要注意解决游戏用户和第三方的问题

第三方,具有良好的密码(祝你好运)或适当的2因素身份验证、https等。你可以很好地覆盖基础。在webservices中添加一些安全性,您应该是一个很好的方法

但你也必须与游戏用户打交道。这比看起来更难,因为他们可以在调试器中运行游戏,并找出游戏如何与服务器通信,何时发送,效果如何等。如果你有一个多人游戏,通常涉及可以获得和/或交易的虚拟商品和/或货币。狡猾的玩家会试图以简单的方式获得它,因此你也需要以某种方式加以保护。
最容易