Security 我可以防止本地用户窥探包含管理员密码的HTTPS头吗?

Security 我可以防止本地用户窥探包含管理员密码的HTTPS头吗?,security,hash,https,passwords,bcrypt,Security,Hash,Https,Passwords,Bcrypt,我的程序通过SSL和标头向网页发送请求(https://example.com/index.php?clientid=xxxx?spcode=xxxx)是一个管理员密码,用于在我向他们发送一组数据之前确定他们是否是我系统的有效客户端 如果一个流氓员工通过窥探本地SSL数据来获取此密码,如果他猜测订单号(不难),他可能会玩弄发送和接收的客户订单 我知道如何使用bcrypt在我的系统上保护某人的密码。但当其他人使用他们的系统时,我如何保护他们的密码 我知道你不应该发送一个预哈希密码,以免泄露你的密码

我的程序通过SSL和标头向网页发送请求(https://example.com/index.php?clientid=xxxx?spcode=xxxx)是一个管理员密码,用于在我向他们发送一组数据之前确定他们是否是我系统的有效客户端

如果一个流氓员工通过窥探本地SSL数据来获取此密码,如果他猜测订单号(不难),他可能会玩弄发送和接收的客户订单

我知道如何使用bcrypt在我的系统上保护某人的密码。但当其他人使用他们的系统时,我如何保护他们的密码

我知道你不应该发送一个预哈希密码,以免泄露你的密码。我应该使用一些软的临时传输散列(一个不同于我在数据库中存储它的散列)。我觉得这不是最好的办法,所以我请求你们大家帮忙。我在Stack Exchange找到了一些很棒的技巧


各位,提前感谢你们抽出时间。我期待着您的想法

对SSL的窥探只能由中等程度的人完成,这是可以检测到的

考虑一下,如果您在fiddler中这样做,浏览器的反应是如何抱怨证书。当然,既然你相信自己不会监视你,那你就没事了

类似地,您将看到您没有使用正确的证书处理服务器。如果您的应用程序拒绝处理其他证书,那么它将不允许建立SSL连接,并且不会进行窥探

不过,我仍然建议按照RFC2617、NTLM等标准,在身份验证头中发送密码。特别是如果您以后也在同一系统的顶部进行服务器到浏览器的操作,并且不希望它们可以从地址栏中窥探到


编辑:根据您编写应用程序的内容,它可能会暂时允许出于调试目的而进行窥探,这会更加棘手

对SSL的窥探只能由中等程度的人完成,这是可以检测到的

考虑一下,如果您在fiddler中这样做,浏览器的反应是如何抱怨证书。当然,既然你相信自己不会监视你,那你就没事了

类似地,您将看到您没有使用正确的证书处理服务器。如果您的应用程序拒绝处理其他证书,那么它将不允许建立SSL连接,并且不会进行窥探

不过,我仍然建议按照RFC2617、NTLM等标准,在身份验证头中发送密码。特别是如果您以后也在同一系统的顶部进行服务器到浏览器的操作,并且不希望它们可以从地址栏中窥探到



编辑:根据您编写应用程序的内容,它可能会暂时允许出于调试目的而进行窥探,这会更加棘手

我认为您误解了HTTPS和SSL的工作原理。此外,如果您要将用户名/密码作为GET参数(在URL中)传递,您应该重新考虑这一点,并使用POST参数或在AUTH头中,可以从浏览器历史记录中检索URL。为了成功地在你中间的人,恶意员工需要控制你的路由器理解,它被写为先工作,然后再回去以确保安全。就像任何匆忙的事情一样。这就引出了一个问题,如果我通过VB.Net应用程序使用MSXML2.XmlHttp或System.XML,即使我没有通过浏览器使用,这些数据是否也会被输入到Internet Explorer的浏览器历史记录中?不。但它很可能会进入服务器的请求日志。事实上,他们在某些情况下可以使用IE缓存,但即使您选择.NET中最喜欢缓存的选项,也不会选择在服务器头中未标记为可缓存的HTTPS请求。我想您误解了HTTPS和SSL的工作方式。此外,如果您要将用户名/密码作为GET参数(在URL中)传递,您应该重新考虑这一点,并使用POST参数或在AUTH头中,可以从浏览器历史记录中检索URL。为了成功地在你中间的人,恶意员工需要控制你的路由器理解,它被写为先工作,然后再回去以确保安全。就像任何匆忙的事情一样。这就引出了一个问题,如果我通过VB.Net应用程序使用MSXML2.XmlHttp或System.XML,即使我没有通过浏览器使用,这些数据是否也会被输入到Internet Explorer的浏览器历史记录中?不。但它可能会进入服务器的请求日志。事实上,在某些情况下,他们可以使用IE缓存,但即使您选择.NET中最喜欢缓存的选项,对于未在服务器头中标记为可缓存的HTTPS请求也不会。非常好的信息,谢谢。我将阅读相应的RFC2617章节。我的应用程序是VB.Net-如果有人“摆弄”它会发生什么?我正在使用MSXML2.XmlHttp检索页面。另一端是一个PHP应用程序,它运行在一个带有SSL证书的专用主机上(这并不是说我不鼓励别人阅读RFC,因此,当你在应用程序中使用HTTP时,2616是必须的,只是希望你不必自己实现支持)。啊。你可以自己试试看。启动Fiddler将其设置为解释HTTPS(在浏览器中测试它是否正常工作),然后将其用作应用程序的代理。希望您的应用程序会出错,因为SSL处于中间位置。为什么要使用.NET中的MSXML2.XmlHttp而不是System.Xml类?我想最初是因为我们正在修补一些AJAX长轮询的东西,这些都是已知的方法。我肯定会做一些事情今晚摆弄。
XmlDocument
用于解析和
HttpWebRequest
或新的
WebClient
对于使用MSXML2的人来说应该不会有太多惊喜,但要更加灵活和干净。其他.NET提供的方法也值得学习,但如果你习惯了