对于我的Xamarin.Forms
应用程序,我创建了一个ASP.NET Web API
作为后端来处理服务器端的内容。
说到安全性,我几乎迷失了方向。
我已经阅读了很多包含很多可能性的文章,例如HCMA
,OAuth
等。
出于我的目的,我认为只有SSL/Https
才能胜任。
我不知道从哪里开始。我读过的所有文件都没有帮助我......
有谁知道我可以获得帮助的地方,或者有人可以描述如何完成这项工作?
据我所知,我必须创建一个SelfSignedCertificate
。
但是我把它放在哪里?
在我的应用程序内部(资源)?
请给我一些帮助。 任何事都受到高度赞赏。
编辑1:
到目前为止,我已经在我的WebAPI中创建了自定义属性EnforceSSL
。
我的应用中的所有WebRequest现在都是HttpsWebRequests
。
这是否意味着我的所有流量都受到保护?
据我所知,为了保护我的API /网站,我需要SSL-Certificate
。我可以创建一个或购买一个......(这是正确的吗?)
我想我需要在我的IIS
API
中将其包括在内。
我是否需要在使用我的应用的手机上安装任何客户端证书?
答案 0 :(得分:3)
我不希望这个问题无法回答,以后对于一般安全问题http://security.stackexchange.com来说就是这个地方。
出于我的目的,我认为只有SSL / Https才能完成这项工作。
这是正确的使用HTTPS (HTTP Secure)。您可以将Web服务器配置为自动将所有http://重定向到https://。请遵循此TechNet指南Configuring Server Certificates in IIS 7。
我还建议您使用https://www.ssllabs.com/ssltest/测试您的网络服务,评估您的网站/服务的安全性。 SSLLabs主要捕获TLS 1.1 vulnerabilities,因此请确保您使用最新的TLS获得A级。TLS 基本上与SSL相同。 SSL 3.0是SSL的最后一个版本。 TLS - 传输层安全性,SSL的新名称。通俗地认为TLS 1.0是“SSL 3.1”。由互联网工程任务组创建和维护。最新版本是TLS 1.2,TLS 1.3目前处于草稿格式。
我的应用程序中的所有WebRequests现在都是HttpsWebRequests。这是否意味着我的所有流量都受到保护?
没有什么是100%安全的,但听起来您遵循建议的做法:https://developer.xamarin.com/guides/cross-platform/macios/http-stack/
我是否需要在使用我的应用程序的手机上安装任何客户端证书?
您所考虑的内容称为Certificate Pinning和https://forums.xamarin.com/discussion/8743/self-signed-cert-using-httpclient
保护移动应用程序的3个最常见错误是:
保护移动应用程序是一个非常大的主题 - 有关于该主题的完整书籍。至少阅读:
OWASP移动安全项目:
https://www.owasp.org/index.php/OWASP_Mobile_Security_Project和
适用于iOS和Android的安全编码指南:https://mgovlab.government.ae/uploads/SecureCodingGuidelines.pdf并确保您已排除前十大漏洞:
当您打包应用程序时,请遵循官方Xamarin指南,注意ProGuard。