1,SmartUpload上传文件,如果用户上传了很大的文件,SmartUpload也是先上传了才能确认大小,这样设置上传文件的大小就没意义了,客户端确认?如果用户屏蔽了浏览器JS功能呢?2,一般设计是一个表单提交到一个servlet,servlet得到提交的数据去处理,或者一个或多个连接 带不同的参数,提交到一个servlet,servlet根据不同的参数做不同的事情,那如果客人不按照套路出牌,直接去访问servlet,此时就没有参数或者 用户把表单中的提交项目的名字都修改了(firefox的debug插件都可以直接修改页面的各个html元素的------判断用户是否登录此时没任何意义的),或者用户自己设计一个页面就是要提交到你这个servlet,此时servlet就拿不到需要的参数或表单项,极容易出错误 甚至down机, 如果按照自己设计的html表单参数项逐个去判断(如用户名,密码,年龄,性别,EMAIL等等),那一个项目中 ,每个servlet都要做这样类似的大量判断,然后再取值,岂不是很麻烦?3,通常的增,删,改,查四种操作中,比如修改,通常是“修改”连接提交到一个servlet,这个servlet根据ID,查询数据库得到相关信息 封装到一个bean中(vo),然后把这个vo设为request的一个属性,然后转到编辑页面,编辑页面拿到vo,再把对应的值赋值到编辑页面的各个html表单项上,同时做个hidden 表单项 保存ID,用户修改完后 提交到一个servlet A,然后servlet A就reuqest.getParameter()得到ID,以判断需要修改哪条记录,如果用户 把这个hidden的ID修改了怎么办? 比如一个多用户的blog系统,每条blog都有一个id,如果这个用户在修改自己的一条blog时 故意把这个hidden的ID值改为其他用户的某条blog的值,那他一提交 就修改了别人的blog了。是否应该在修改前先根据用户名和这个blog ID去查询一下 看有没有符合的 然后再修改。

解决方案 »

  1.   

    有意思
    一般是 js 验证,不过不如 servlet 验证安全。
    不过对于大量的 重复性判断,没必要一个个 servlet 自己判断。可以交给 filter
    如果用了 struts,就更方便了,写一个 action 继承 actionServlet 进行安全判断,其他所有需要重复判断的 action 继承这个 action 就可以了
      

  2.   

    1.如果客户端屏蔽看,你可以加一个检查js是否屏蔽的功能。2.在servlet中获取数据之前就判断传来的参数是否合法。或者是他来到servlet的途径是否合法。3.应该在修改前先根据用户名和这个blog ID去查询一下 看有没有符合的 然后再修改。