0

我用 asp.net 编写了一个应用程序,并在某些页面中使用了“respons.redirect”,如下所示:

Response.Redirect(string.Format("~/*****/****.aspx?ID={0}", ID));

当用户执行此代码时,他将重定向到正确的页面,一切都很好。他可以在他的浏览器地址中看到这个重定向链接:

http://localhost:1852/Jornal/Editor/ReviewerEmail.aspx?ID=1030

现在,如果他手动更改 ID 并且 ID 正确,他可以在没有任何许可的情况下访问其他数据。我怎样才能避免这个问题?(我不会使用会话)请帮助我

4

2 回答 2

3

您需要使用访问控制

每当您显示任何数据时,您都需要检查当前登录的用户是否有权访问该数据。

显然,您还需要跟踪当前登录的用户,以防止攻击者声称他们是其他人。
要做到这一点,请使用 ASP.Net 的内置会员系统。

于 2012-12-17T18:23:06.270 回答
3

如果ID需要公开,没有访问控制可以解决问题。

那么我建议您添加第二个参数,该参数是该 ID 的哈希值。篡改id参数会导致id和hash不匹配

http://msdn.microsoft.com/en-us/library/system.security.cryptography.sha256.aspx

你冷也改变你的 ID 参数为不太“猜测”的 id,如 GUID

于 2012-12-17T18:38:43.280 回答