asp.net - 仅 SSL 和 key 代码就足以保证 Web API 的安全吗?

标签 asp.net security ssl asp.net-web-api

我有一个 ASP.Net Web API (v2),所有对它的调用都需要 SSL,无一异常(exception)。系统没有登录,相反,我计划为用户提供一个 key key 代码来识别他们。所有基于 future 的请求都将包含此 secret key key 代码,作为识别和验证该用户身份的方式。

我的问题是 SSL 是否足以保证安全?假设从来没有包含 key 的不安全连接,我是否需要通过其他长度来加密或保护它?我已经阅读了对称、非对称和散列方法,但似乎只有在整个过程中都使用 SSL 时,这才可能是多余的。

这看起来太简单了,我错过了什么?

一些其他注意事项,secret key key 代码不是用户手动输入的。它要么存储在系统应用程序中(加密),要么由与我们联系的其他公司的 API 使用。

最佳答案

我想这取决于您所说的“安全”是什么意思 - 安全传输?使用 SSL,您所获得的只是从应用程序到服务器的安全通道,以及对服务器的身份验证。如果您已经在所有地方使用 SSL,我推荐的唯一额外保护是证书固定,它可以防止流氓 CA(更多信息和代码示例在这里:https://www.owasp.org/index.php/Certificate_and_Public_Key_Pinning)。此外,请确保服务器上的 SSL 堆栈符合规范并禁用弱/易受攻击的密码。如果用户没有输入任何内容进行身份验证,我认为对 key 代码做额外的事情(加密、签名)不会给你带来太多好处。

我会更关心您将 key 代码存储在应用中的什么位置,以及如何为用户提供 key 代码。

关于asp.net - 仅 SSL 和 key 代码就足以保证 Web API 的安全吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22077290/

相关文章:

asp.net - 获取到 localhost 的连接被中断。尝试发送 [DataContract] 标记对象的 JSON 表示时

c# - 在 aspx.cs 而不是 asmx.cs 中使用 Web 方法有什么区别/优势/劣势吗?

c# - 用于选择/取消选择的 Javascript 函数选中 radgrid 标题模板中的所有复选框

android - 如何防止其他 iOS/Android 应用程序使用我的 RESTful API?

security - 如何在 PHP 中限制用户登录尝试

c# - ASP.NET MVC 传递 DateTime 来查看

ruby-on-rails - OpenSSL::SSL::SSLError(主机名 "smtp.mandrillapp.com"与服务器证书不匹配)

ssl - javax.net.ssl.SSLHandshakeException : No negotiable cipher suite when calling Apple APNS using HTTP2 implemented by jetty library

android - 颠覆不起作用?

php - 更改 FOSUserBundle (Symfony) 中的默认登录页面