我最近开发的一个程序免费SVN托管服务,用户管理中心使用了GridView,这里我是根据用户名取出的用户文章或者项目,用Gridview列出来,为了省事,直接用了Gridview的编辑和删除按钮。
因为是vs2005自动生成的修改和删除按钮,修改和删除的时候没有判断用户名,那么是否有可能把别人的文章给删除了呢?如果有可能,那就是很大的漏洞了。
有没有人测试过这种问题。请指点一二。谢谢

解决方案 »

  1.   

    呵呵.变相广告!
    不高删除的时候,可以做个判断的亚!
    如果usernam的名字根当前登录用户不同,或者不是管理员,就不能删除
      

  2.   

    在Page_Load
    里设置下DeleteCommand?
      

  3.   

    看GridView列出的内容是否含有 别人的文章或项目,没有页面上删除比较困难。还有另外一种就是猜测出表结构。用注入的形式进行删除。但小灰这应该对你不大可能吧。
      

  4.   

    谢谢各位的热情,其实你关注技术问题,那他就不是广告。似乎大家都对是否是广告特别有兴趣。问题已经解决。解决方案:在Page_Load里加入:SqlDataSource1.DeleteCommand = "DELETE FROM [t_xxxxx] WHERE user_id=" + User.Identity.Name + " and [id] = @id";
    本来前台aspx里是:DeleteCommand="DELETE FROM [t_xxxxx] WHERE [id] = @id"