Request.QueryString
不是很安全。如果有人登录了
只需键入URL
myaccount.aspx?custId=10
可以获得另一位客户的信息。
所以它根本不安全。发布这个的原因是因为,我想要一种在页面之间传递customerId的替代方法。也许加密它?
答案 0 :(得分:2)
查询字符串是安全的,没有缺陷。
有缺陷且不安全的是信任用户输入数据。您有责任验证发送到服务器的数据不是恶意的,并且允许登录用户请求的操作。
您应该获取该查询激活值,确保它是有效类型(您的示例似乎是一个整数),然后在获取客户数据之前,确保允许用户访问该客户数据。
答案 1 :(得分:2)
对于myaccount.aspx,您不需要用户将其ID作为参数传递。
正如其他人所说,使用会员资格。或者创建用户ID和密码的哈希值(加密值),并将其保存为cookie或会话对象。你可以读取它而不是输入参数。
答案 2 :(得分:1)
这不是QueryString
的责任。您应该实施身份验证和授权系统,最好使用MembershipProvider
和RolesProvider
。
答案 3 :(得分:1)
它做了它应该做的事情。您可以自行保护您的网站。没有人说查询字符串中的所有内容都用于敏感的访问相关功能。
答案 4 :(得分:1)
没有安全的方式来传递它。一旦用户登录,将ID存储在Session或等效的内容中,然后始终从那里获取。
答案 5 :(得分:1)
您可以查看asp.net membership
答案 6 :(得分:0)
您应该使用ASP.NET security对客户进行身份验证和授权,以便检查登录用户是否有权访问查询字符串中指定的客户ID。