2014-09-27 37 views
0

我有一个网站,其中包含GET表单中的用户输入字段。当用户点击“搜索按钮”时,来自输入字段的文本与密码(存储在单独的php文件中)组合以查询外部API。外部API查询:用户是否可以看到我的密码?

@file_get_contents(MyURL) 

其中MyURL包含文本输入和机密密码。

问题:密码在浏览器网络中是否可见?如果是,在哪里?我怎样才能看到在e。 G。铬?

但是最重要的问题是:如果密码是可见的,我该如何隐藏它?

谢谢! Benjamin

回答

1

POST可能会更好,因为POST正文通常不会保存在日志中,或者它不会被代理等缓存,而GET参数(位于URL中)是。

如上所述,用户不可见密码,但如果$ MyUrl不是HTTPS,它将以明文形式出现,这意味着您必须必须假设MyUrl已被泄露。如果是HTTP,即使用户不能直接看到它,网络中处于更好位置的其他人也会很快或晚些时候。

+0

thx的信息。你认为只要$ MyUrl是https或oder就可以完成该网站(我的主页),即正在进行呼叫,并且需要https。 $ MyUrl是外部API服务的URL,它很幸运地支持https – 2014-10-02 11:08:59

+0

如果您确定该网站稍后将不会与您联系,并且链接到这些凭据的任何数据(例如凭证或会话ID或令牌等) ..),你可以有你的网站HTTP和MyURL HTTPS。每次MyURL需要向您发送任何内容时,它会打开**连接,数据将以明文形式显示。当你打开到MyURL的连接并且它回复了数据时(如正常的TCP情况下),它将被加密。 – sc0p 2014-10-03 07:17:11

2

用户不会看到密码,因为请求是在服务器和API之间完成的。它不通过最终用户网页浏览器。

browser --(input text)--> your server --(input text + password)--> API 

而不是使用file_get_content你应该使用curl使HTTP请求。您可以更好地控制请求选项。

+0

谢谢!这很有趣,因为我的问题的第一个评论是,我的解决方案是不安全的,我应该使用POST方法。他错了吗? (评论似乎现在被删除) – 2014-09-27 17:11:19

+0

如果他说密码是可见的,他错了;但是使用https和POST方法是做出包含密码的请求的正确方式,并且他在这一点上是正确的。 – 2014-09-27 17:18:59

相关问题