在使用ajax的时候,比如在做某个增加操作的时候,传值、请求都是通过js的,而通过一些浏览器调试工具,可以轻易篡改js代码,例如在代码外面套一个for循环,循环个100次,如果服务端没有做任何验证的话,而传递过来的又都是合法数据,那么就会毫不犹豫的执行100次新增。所以需要在服务端做一个判断,如果当前请求距离上一次请求的时间在3秒之内的话就提示操作频繁,拒绝操作。如果不是,那么就是合法请求了,可以执行代码。
代码如下:
- C# code
Object[] obj = null; string userName = "a123"; //假定为session中取得的用户名 if (Session["filter"] != null) { obj = (Object[])Session["filter"]; } else { obj = new Object[] { userName, 1 }; } long nowTime = Convert.ToInt64(DateTime.Now.ToString("yyyyMMddhhmmss")); long lastTime = Convert.ToInt64(obj[1]); if (nowTime - lastTime <= 3) { Response.Write("<script>alert('操作太过频繁!拒绝操作。')</script>"); } else { //执行其他操作 IList<Dictionary<String, String>> list = dao.GetList("test", Request); dao.replaceHtml(list, tb1); } Session["filt
------解决方案--------------------
学写了
------解决方案--------------------
C# code,my god!
------解决方案--------------------
加上缓存。
双管下。
防调一次删一次cookies/根本没有保存cookies。
------解决方案--------------------
感谢楼主分享
------解决方案--------------------
------解决方案--------------------
------解决方案--------------------
太高深
------解决方案--------------------
学习了,呵呵