2

Request.QueryString不是很安全。万一有人登录。只需输入 URL

myaccount.aspx?custId=10

一个人可以得到另一个客户的信息。

所以它根本不安全。发布此内容的原因是,我想要一种在页面之间传递 customerId 的替代方法。也许加密它?

4

7 回答 7

2

查询字符串是安全的,没有缺陷

有缺陷和不安全的是信任用户输入数据。您有责任验证发送到服务器的数据不是恶意的,并且登录用户允许所请求的操作。

您应该获取该查询搅拌值,确保它是有效类型(您的示例似乎是整数),然后在获取客户数据之前,确保允许用户访问该客户数据。

于 2011-04-13T19:24:51.780 回答
2

实际上,对于 myaccount.aspx,您不需要用户将他们的 ID 作为参数传递。

正如其他人所说,使用会员资格。或者创建用户 ID 和密码的哈希(加密值)并将其保存为 cookie 或会话对象中。您可以读取它而不是输入参数。

于 2011-04-13T20:47:42.493 回答
1

这不是 的责任QueryString。您应该实现一个身份验证和授权系统,最好使用MembershipProviderRolesProvider

于 2011-04-13T19:23:17.983 回答
1

它做它应该做的事情。保护您的网站取决于您。没有人说查询字符串中的所有内容都用于敏感访问相关功能。

于 2011-04-13T19:24:48.303 回答
1

没有安全的方法可以通过它。用户登录后,将 ID 存储在 Session 或类似的东西中,然后始终从那里获取它。

于 2011-04-13T19:26:06.677 回答
1

您可以检查asp.net 会员资格

于 2011-04-13T19:26:11.030 回答
0

您应该使用 ASP.NET安全性对客户进行身份验证和授权,以便检查登录用户以查看他们是否有权访问查询字符串中指定的客户 ID。

于 2011-04-13T19:22:38.450 回答