我想知道使用这两种方法的所有优点和缺点。特别是对网络安全的影响。
谢谢。
发布于 2017-12-26 15:53:11
GET和POST都有它们的位置。你不应该依靠他们中的任何一个来保证安全。
GET请求
POST请求
你想表单提交的结果是可收藏的(认为谷歌搜索)?使用GET。
你想表单提交的结果是可以缓存的吗?使用GET。
你的要求是不是幂等的(安全可重复的)?使用POST,然后总是重定向到适合通过HTTP GET获取的页面。
你需要上传文件吗?使用POST。
发布于 2017-12-26 17:03:07
如果您重新加载GET请求的页面,浏览器将只是再次(从服务器或从缓存中)获取URL。但是,如果您重新加载POST,浏览器将显示一个轻微混淆的重新发送数据的警告弹出窗口,用户可能然后取消(导致更令人困惑的“过期”页面)。同样的事情,如果你使用回或历史返回到一个POST的结果页面。
这当然是基于不同的语义:GET请求应该是幂等的 - 也就是说,你可以做几次而不需要改变任何东西。另一方面,POST是针对具有副作用的行为,比如注册某些内容,通过在论坛上发表评论。通常情况下,用户不希望重新加载时重复此操作,所以警告是明智的。但是,如果操作是安全可重复的(比如搜索),则应避免使用POST,因为警告不是必需的,只会给用户造成混淆。
关于安全性的一点:如果您在GET表单中有一个密码字段,那么当您输入密码时,密码将被撬开,但是,当您点击提交时,它将在地址栏中明显可见!但除此之外,GET和POST都没有真正的安全性,所以如果这是一个问题,那就使用SSL。
发布于 2017-12-26 17:57:08
如果您传递密码或其他敏感信息,请始终使用POST并确保使用SSL,以便数据不会以明文形式在客户端和服务器之间传输。
安全性方面,使用GET的缺点是所有提交的数据都将在URL中,因此存储在浏览器历史记录的本地客户端上。
https://stackoverflow.com/questions/-100000010
复制相似问题