我正在为我的网络应用程序创建一个API,我对如何传递API密钥和密码等数据而不会被第三方拦截有一些疑问。现在他们正在使用GET方法传递,但根据我的理解,GET方法不是很安全。 POST是更好的传递数据的方式,还是我应该使用另一种方式?
答案 0 :(得分:2)
POST与GET一样不安全。如果它们是通过不安全的频道发送的,那么两者都可能被嗅到。所以非常重要的是你要通过HTTPS加密数据。
答案 1 :(得分:2)
确实没有太大区别,两者都是明确发送的。 W3Schools为每种方法的使用提供了很好的解释。您可以在链接中看到POST请求并未真正隐藏:尽管变量在URL中不可见,但它们仍然是HTTP消息的一部分。 但是,在我链接的比较表中,GET被列为不如POST安全。这可能是微不足道的,但建议永远不要通过GET发送密码等内容,因为即使在浏览器历史记录或Web服务器日志中它们也会清晰显示。
总而言之,根据链接提供的建议使用POST和GET。但是,对于安全通信,请依赖加密,例如使用TLS。
答案 2 :(得分:0)
如果攻击者可以访问流,他可以以任何方式查看变量,那么GET与POST并不是为了保护您的应用程序。
您应该通过HTTPS发送数据,这会以双向方式加密数据,并且(如果正确实施)意味着只有客户端和服务器才能看到正在传递的数据。
答案 3 :(得分:-1)
POST is more secure than GET for a couple of reasons
1.Parameters are not saved in browser history
2 Can not be bookmarked.
3.The browser usually alerts the user that data will need to be re-submitted.
4.multipart/form-data or application/x-www-form-urlencoded Use multipart encoding for binary data.
5.Can send parameters, including uploading files, to the server
**6.More difficult to hack**
7.No restrictions. Binary data is also allowed.
8.POST method variables are not displayed in the URL.
9.Not cached
10.8 Mb max size for the POST method
所以Post值是安全的