【问题标题】:Encode URL parameter values for sensitive content?编码敏感内容的 URL 参数值?
【发布时间】:2015-04-19 00:33:53
【问题描述】:

对于那些经常构建 Web 应用程序的人来说,您会知道在某些时候您需要发送一些 URL 参数。

这些参数的值甚至可能很敏感,可能会被滥用。

例如,用户 1 想要查看用户 2,因此 URL 可能是

http://www.example.com/User/2

这很好用,代码中的URL参数也很容易读取。

但是这会导致一个问题:如果用户 1 没有访问用户 2 的权限,那么用户 1 可以很容易地在他的浏览器中输入这个 URL。通常,当您想避免访问时,您会使用某种形式的访问控制(如 ACL),但是我的问题是,在数据敏感的情况下,将 URL 字符串也变成编码字符串会更好吗?

LinkedIn 就是一个很好的例子。这是一个我认为是编码参数的 URL:

https://www.linkedin.com/hp/?dnr=wxTvRoX8KGA5n3H4yxFpQfGTcdpfl3PW5Ab5

是否有任何关于何时要编码的规则?你应该总是使用编码字符串吗?

【问题讨论】:

  • 我认为规则应该基于以下问题:它是私有的还是公共的?

标签: security url url-parameters


【解决方案1】:

一般来说,您不希望将敏感材料放入 URL。 URL 有被添加书签、通过电子邮件发送、记录等的趋势……所有使 URL 变得不那么私密的东西。对敏感信息进行编码比不对其进行编码要好,因为编码的信息不会被某人意外查看。他们必须先故意解码,然后才能查看。

编码 URL 参数的安全性之外还有其他原因。一个常见的例子是在 URL 参数中存储一个小的二进制数据结构,例如页面引用信息或二进制密钥到表中。我的假设是 LinkedIn dnr 参数已编码但不敏感。

【讨论】:

    猜你喜欢
    • 2016-11-19
    • 2011-03-14
    • 2013-01-14
    • 2015-01-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-06-09
    相关资源
    最近更新 更多