保护 asp:Hyperlink Navigation 属性标记内部的变量
我有一个带有一系列 asp:hyperlink 的 asp.net 转发器控件
<asp:HyperLink runat="server" ID="name" NavigationUrl="~/Pages/display.aspx?fileid={0}&user={1}" />
,然后在 OnItemDataBound 方法上:
fullname.NavigationUrl=string.Format(name.NavigationUrl, user.fileid, user.userid);
因此,这在转发器中提供了一系列 URL
http://www.abc.com/users.aspx?fileid=1& ;userid=10
http://www.abc.com/users.aspx?fileid=2& ;userid=20
http://www.abc.com/users.aspx?fileid=3& ;userid=30
好的,使用简单的代理工具,某人可以用其他数字替换其中一个参数,以访问他们不应该看到的内容。 除了服务器端验证和身份验证之外,在尝试在转发器中创建动态 URL 时,除了传递参数之外,还有更好的方法吗?
谢谢。
I have an asp.net repeater control with a series of asp:hyperlink's
<asp:HyperLink runat="server" ID="name" NavigationUrl="~/Pages/display.aspx?fileid={0}&user={1}" />
and then on the OnItemDataBound method:
fullname.NavigationUrl=string.Format(name.NavigationUrl, user.fileid, user.userid);
So that gives me a series of URLs in the repeater
http://www.abc.com/users.aspx?fileid=1&userid=10
http://www.abc.com/users.aspx?fileid=2&userid=20
http://www.abc.com/users.aspx?fileid=3&userid=30
OK, so with a simple proxy tool someone can replace either of the parameters with some OTHER number to get access to what they shouldn't see.
server-side validation and authentication aside, is there a better method other than passing parameters when trying to create a dynamic URL within a repeater?
thanks.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
是的,创建一个 LinkButton,将其发回服务器,然后获取您需要的信息(可能需要从数据库加载)并执行 Response.Redirect。
如果您公开查询字符串,则它始终可以更改。我看到使用的其他方法是加密查询字符串参数,并在另一页上解密。如果解密失败,则进行了修改。
HTH。
Yes, create a LinkButton, have it post back to the server, then get the information you need (which may need to be loaded from the db) and do a Response.Redirect instead.
If you expose the querystring, it can always be changed. Other approach I seen used is encrypt the querystring params, and decrypt on the other page. If decrypt fails, it was tinkered with.
HTH.
您可以加密参数,正如 Brian 已经提到的那样。您可以研究的另一件事是 跨页回发 。另一种选择是在会话 cookie 中设置参数,在后台代码上进行重定向并获取目标页面上的参数。
You can encrypt parameters as already mentioned by Brian. The other thing you could look into is Cross Page Postback . The other alternative is to set the parameters in the session cookie, do a redirect on code behind and pick up the params on the target page.