【问题标题】:Which is safer in term of security, sending parameters thru url or JSON object?在安全性方面哪个更安全,通过 url 或 JSON 对象发送参数?
【发布时间】:2015-10-02 10:51:52
【问题描述】:

在安全性方面,通过 url 或 JSON 对象发送参数哪个更安全?

网址:

www.mywebsite.com/search.php?password=t45vye45vh

JSON 对象:

request.post(url, data);

【问题讨论】:

  • 对于搜索或获取请求参数就可以了...
  • 如果你要发布用户名和密码怎么办?
  • 如果您担心安全问题,这两种方法都不是安全的 https://www.mywebsite.com

标签: security url http-post http-get


【解决方案1】:

GET 方法请求指定资源的表示。 使用 GET 的请求应该只检索数据并且不应该有其他 效果。

当用户想要从服务器获取数据时,只需要使用基本的详细信息,如 userId 或其他一些 id,然后使用 get 请求。

POST 将要处理的数据(例如,从 HTML 表单)提交到 确定的资源。数据包含在请求的正文中。 这可能会导致创建新资源或更新 现有资源或两者兼有。

Post 方法一般用于表单或向服务器传递更多数据。每当需要在服务器上存储某些内容时,都会使用发布请求。例如。用于注册、登录、文件上传、创建新记录等。

【讨论】:

  • 另外,看到 GET 添加到下一页上的 URL,您的浏览器历史记录可以记住该页面,并且搜索引擎可能会将其作为单独的页面包含在没有 GET 变量的页面中
【解决方案2】:

这取决于您试图保护的反对。对于信息保证和维护准确的审计历史记录,URL 比请求正文更容易在日志中捕获。在 WAF 中解析也更简单。

为了防止滥用此信息,您可能希望使其不那么明显。任何阅读使用您的第一个示例的标准网络服务器日志的人都可以看到密码。您的浏览器还将在其历史记录中保留此值,并且用户可以创建包含密码的书签 - 两者都没有提供安全的存储方法。

【讨论】:

    【解决方案3】:

    对于任何敏感的内容,请使用 POST。

    启用 HTTPS 后,查询字符串参数确实是加密的,不能轻易被嗅探。但是,GET 请求默认存储在浏览器历史记录、代理和服务器日志中。它们也可能在referer 标头中泄露。

    POST 请求不太可能被记录,并且不存在referer 问题。

    【讨论】:

      猜你喜欢
      • 2016-12-23
      • 1970-01-01
      • 1970-01-01
      • 2015-03-14
      • 2013-01-23
      • 2023-03-12
      • 2015-12-07
      • 2016-02-13
      • 2014-10-31
      相关资源
      最近更新 更多