原来的第一贴:
http://topic.csdn.net/u/20091211/13/e71f79df-bd21-4c41-af06-9c4f512d5af6.html
--------------------------------
其实是因为这样的,我有用户表
User
ID Name   Bonus
1  Jerry  100
-----------------
我现在在写Ajax提交数据实现增删改功能,以下就以更新为例
我的设计是这样的,以下代码我都是简单写的,可能会存在语法的错误,但我想说明的问题应该清楚
UserEdit.aspx    protected void Page_Load(object sender, EventArgs e)
    {
        //判断提交是否为当前网站提交数据 
        if (Request.UrlReferrer == null || Request.Url.Host != Request.UrlReferrer.Host)
        {
            throw new Tools.ExceptionMessage("服务器积极急拒绝提交请求");
        }
        //这里前面的贴子说可以伪造UrlReferrer 所以在考虑用IP来做确认是否为本站点        using (EDbOperator oo = new EDbOperator())
        {
            UserInfo info = com.Common.User.GetInfo(oo, Session["UserID"]); //这里取得当前登录用户的信息
            if (Request.Form["name"] != null)
            {
                info.Name = Request.Form["name"];
            }
            if (Request.Form["bonus"] != null)
            {
                info.Bonus = Convert.ToDouble(Request.Form["bonus"]);
            }
            com.Common.User.Update(oo, info);//更新用户信息
        }
    }
}
然后页面   <form method="post" action="UserEdit.aspx">
        <input type="name" value="Jerry" />
        <input type="submit" value="提交" />
   </form>问题
1:
上面是我网页中的一个修改会员称妮的地方,
但我如何防止被别人再提交多一个bonus修改了他的积分呢?
2:
有什么办法实现来伪造POST数据,更新我所登录的用户的积分谢谢

解决方案 »

  1.   

    if (Request.Form["bonus"] != null)
                {
                    info.Bonus = Convert.ToDouble(Request.Form["bonus"]);
                }----------------------
    update 语句只更新昵称 即可阻止恶意提交
      

  2.   

    2. socket or 其他高级类  发送请求的时候 伪造数据 即可
      

  3.   

    回楼上,我这里把积分Bonus做示例,是为说明如何防止的重要性,
    但比如我这里有更新
    用户:名称,性别,年龄
    而这时候我有两个Form  <form method="post" action="UserEdit.aspx">
            <input type="name" value="Jerry" />
            <input type="submit" value="提交" />
       </form>
      <form method="post" action="UserEdit.aspx">
            <input type="sex" value="男" />
            <input type="submit" value="提交" />
       </form>这个时候我要求
    我的第一个form只提交修改 名称
    我的第一个form只提交修改 性别
    ------------------------------
    但是如何防止别人伪造一个Form提交如  <form method="post" action="UserEdit.aspx">
            <input type="name" value="Jerry" />
            <input type="sex" value="男" />
            <input type="submit" value="提交" />
       </form>谢谢
      

  4.   

    update指定修改字段...web是很弱的,想不被入侵很难的。
      

  5.   

    其实我要的功能,就是做一个通用的修改页面,给各种form提交修改进行接收,但又要求这些提交过来的form是我原先在网站里面设计的,而不是别人恶意的提交谢谢
      

  6.   

    你post的时候可以 加上权限判断啊??
    例如
      <form method="post" action="UserEdit.aspx?id=“”">
            <input type="name" value="Jerry" />
            <input type="sex" value="男" />
            <input type="submit" value="提交" />
       </form>
    可以加个唯一的标示
    只有本用户才能提交修改本人的信息