A页面有一个按钮(button),默认不显示,只有大于一定权限的人并且是这个页面的创作人(也就是自己发的贴子自己编辑的意思)才能显示出来,点击这个按钮可以进入B页面,B页面是对A内容进行编辑的页面。
button按钮传递的超链接是这样的:http://localhsot/B.aspx?editID=5
其中editID后面跟的是A页面记录在数据库中的id号,在进入B页面同时我对传过来的参数做了过滤,防止了SQL注入,并对权限做了控制,只有能进入A页面的权限才可以进入B权限。
问题是这样:如果用户手动更改editID后面的数值,然后刷新页面,这样就能进入其他页面了,并且可以编辑其他页面的内容,也就是如果你用于一定权限就可以更改不是你自己的帖子,这样带来极大的不安全。
有什么解决方案,请教大家!

解决方案 »

  1.   

    方法太多了,
    1.你可以判断当前编辑的页面内容是否是当前用户的,如果不是就跳到错误页面,这需要你配合着调整你的数据库设计来配合你的程序
    2.重写URL这样可以让用户只能看到一个虚拟的路径,这个路径实际上是不存在.当它想通过这个虚拟的路径进行访问时,由于页面后台会做相应的转换处理就会找不到这个页面.
    3.你可以把要传递的参数放到SESSION中,而不显示在URL中.
    第三种应该是最简单的了.