使我的所有方法都需要https一个好主意?

时间:2013-04-16 18:02:52

标签: c# asp.net asp.net-web-api

我正在使用asp.net web api,我正在使用基本身份验证来授权我的用户。我需要在所有需要授权的呼叫上使用HTTPS,但是对于我不需要授权的所有呼叫(即注册),我是否应该在https中执行它们以保持一致性?如果我不使用https进行这些调用,是否会出现性能提升等问题。

3 个答案:

答案 0 :(得分:3)

这些天的HTTPS开销对大多数系统来说都是微不足道的(参见How much overhead does SSL impose?)。我一直都是HTTPS的粉丝,因为它的端到端安全性更高,几乎没有任何实施成本,但你的里程可能会有所不同。如果您担心它可能产生的性能影响,请实施它然后分析您的应用程序,看看有什么区别

答案 1 :(得分:2)

Http提供更高的性能,因为https中的加密会增加请求和响应的大小,并且加密和解密需要额外的处理。今天,机器处理https头部非常快,没有任何可观的性能下降。如果您必须在注册时传递用户名/通行证,那么安全性比获得更少的性能更重要,那么它可能会破坏安全性。

答案 2 :(得分:1)

根据你的标签我会假设这里可能有一些AJAX。如果情况确实如此,那么坚持单一访问方案将会更好。否则将引入跨浏览器兼容性问题并可能引入安全漏洞。

除非你正在做一些像传输大型媒体文件/流的事情,否则可能不值得考虑适度的性能提升。

注意:潜在漏洞超出了您通过不安全连接发送敏感数据的明显情况。例如,请参阅https://developer.mozilla.org/en-US/docs/Security/MixedContent