对敏感内容的 URL 参数值进行编码?
Encode URL parameter values for sensitive content?
对于那些经常构建 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
什么时候编码,什么时候不编码,有什么规定吗?您应该始终使用编码字符串吗?
一般来说,您不想将敏感 material 放入 URL。 URL 有被添加书签、通过电子邮件发送、记录等的趋势...所有这些都会使 URL 变得不那么私密。对敏感信息进行编码 略微 比不对其进行编码要好,因为编码后的信息不会被其他人意外查看。他们必须有意解码才能查看。
编码 URL 参数有超出安全性的原因。一个常见的例子是在 URL 参数中存储一个小的二进制数据结构,例如页面引用信息或二进制密钥到 table 中。我的假设是 LinkedIn dnr
参数已编码但不敏感。
对于那些经常构建 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
什么时候编码,什么时候不编码,有什么规定吗?您应该始终使用编码字符串吗?
一般来说,您不想将敏感 material 放入 URL。 URL 有被添加书签、通过电子邮件发送、记录等的趋势...所有这些都会使 URL 变得不那么私密。对敏感信息进行编码 略微 比不对其进行编码要好,因为编码后的信息不会被其他人意外查看。他们必须有意解码才能查看。
编码 URL 参数有超出安全性的原因。一个常见的例子是在 URL 参数中存储一个小的二进制数据结构,例如页面引用信息或二进制密钥到 table 中。我的假设是 LinkedIn dnr
参数已编码但不敏感。