为敏感内容编码URL参数值?

时间:2015-04-19 00:33:54

标签: security url url-parameters

对于那些经常构建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

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

1 个答案:

答案 0 :(得分:3)

通常,您不希望将敏感材料放入URL中。 URL有被加入书签,通过电子邮件发送,记录等的倾向......所有使URL不太私密的东西。编码敏感信息稍微比不编码它更好,因为编码信息不会被人意外查看。他们必须在他们可以查看之前进行故意解码。

编码URL参数的安全性超出了原因。一个常见的例子是将URL参数中的小二进制数据结构(例如页面引用者信息或二进制密钥)存储到表中。我的假设是LinkedIn dnr参数已编码但不敏感。