HTTP POST有多安全?
POST是否足够安全地发送login凭据?
或者是一个必须的SSL连接?
SSL是必须的。 POST比GET更安全,因为它也是未encryption的。 SSL将覆盖整个HTTP通信,并encryption客户端和服务器之间发送的HTTP数据。
<shameless plug>
我有一个博客文章 ,详细说明了一个HTTP请求的样子,以及一个GET请求如何与一个POST请求进行比较。 为了简洁起见,GET:
GET /?page=123 HTTP/1.1 CRLF Host: jasonmbaker.wordpress.com CRLF User-Agent: Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10_5_6; en-us) AppleWebKit/525.27.1 (KHTML, like Gecko) Version/3.2.1 Safari/525.27.1 CRLF Connection: close CRLF
和POST:
POST / HTTP/1.1 CRLF Host: jasonmbaker.wordpress.com CRLF User-Agent: Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10_5_6; en-us) AppleWebKit/525.27.1 (KHTML, like Gecko) Version/3.2.1 Safari/525.27.1 CRLF Connection: close CRLF CRLF page=123
(CRLF只是一个换行符)
正如您所看到的,从请求形成的angular度来看,唯一的区别就是POST请求使用POST这个词,表单数据在请求的主体中与URI发送。 因此,使用HTTP POST是安全的。 如果你想保护数据,你应该使用SSL。
*
请注意,还有其他的区别 。
这取决于你的情况,截取证书花费多less钱?
如果只是login软件Q + A站点,那么SSL可能不是必需的,如果它是在线银行网站或者您存储信用卡数据,那么它是。
这不是一个技术性的决定。
HTTP POST没有被encryption,它可以被networking嗅探器,代理拦截,或者在服务器的日志中以自定义的日志级别泄露。 是的,POST比GET更好,因为POST数据通常不是由代理或服务器logging的,但是不安全 。 要保护密码或其他机密数据,您必须在开机前使用SSL或encryption数据。 另一个select是使用浏览器的摘要式身份validation(请参阅RFC 2617)。 请记住(本地)encryption不足以防止重放攻击,您必须在encryption之前将nonce和其他数据(例如realm)连接起来(请参阅RFC 2617了解如何在摘要身份validation中完成此操作)。
SSL是必须的:)
HTTP Post是以纯文本传输的。 例如,下载并使用Fiddler观看HTTPstream量。 你可以很容易地看到整个post(或者通过像WireShark这样的networkingstream量监视器)
这是不安全的。 POST可以像GET一样简单地被嗅探。
不… POST是不够安全的。 SSL是必须的。
POST只能有效地隐藏查询string中的参数。 任何人都可以看到浏览器和终点之间的stream量。
最安全的方法是根本不发送证书。
如果您使用摘要身份validation ,那么SSL 不是必须的。
(注意:我并不是暗示通过HTTP进行摘要式身份validation始终比使用基于HTTPS的POST更安全)。
POST是明文。
一个安全的连接是必须的。
这就是为什么它被称为安全连接。
不,使用SSL。
使用POST,除非使用SSL,否则值仍然以纯文本forms提交。
HTTP GET和HTTP POST之间的唯一区别就是数据编码的方式。 在这两种情况下,它都以纯文本forms发送。
为了提供任何types的login证书的安全性,HTTPS是必须的。
您不需要昂贵的证书来提供HTTPS。 有很多供应商会颁发约20美元的基本证书。 更昂贵的包括身份validation,这更多地是电子商务网站所关心的问题。
单独的POST请求是不安全的,因为所有的数据都是纯文本的“旅行”。
您需要SSL,以确保安全。
如果使用未encryption的HTTP连接,POST数据将以纯文本forms发送。 如果这是足够安全取决于您的使用(提示:不是)。
如果服务器,客户端机器和它们之间的所有机器都是受控的,完全可信的networking的一部分,这可能是好的。
除了这些非常有限的情况之外(甚至有时甚至在其内),纯文本身份validation正在寻求麻烦。
取决于你在哪里使用它,以及你真正需要的安全性。
除非您使用代理服务器(TOR)或某人正在窃听您的电话,否则无法从您的家中获取您发送的POST数据。
但是,如果您担心有人使用无线安全networking进行login,那么ssl非常重要。
如果你是银行,你甚至不能冒这个风险。 如果你是一个login看到任务的techer,那么你应该没问题
- 如何在Android中使用HTTPClient在JSON中发送POST请求?
- 为什么unaligned apk需要?
- 拒绝正在等待开发者发布的应用程序
- Web部署任务失败。 (“Microsoft.Web.Deployment.DeploymentManager”的types初始值设定项引发exception。)
- 如何完全摆脱web.config中的“$(ReplacableToken …)”
- Android版本和“等待debugging器”
- 从Visual Studio 2015发布 – 允许不受信任的证书
- 如何使用PhantomJS提交表单
- 什么是Android应用程序的“functiongraphics”?