使用Spring MVC +
hibernate的主要缺陷之一是自然的方法是使用hibernate域对象作为表单的后备对象。Spring将根据名称通过DEFAULT绑定请求中的任何内容。这无意间包括了诸如ID或名称(通常是主键)或其他hibernate管理属性的设置。这也使您很容易进行表单注入。
为了在这种情况下保持安全,您必须使用类似以下内容的方法:
protected void initBinder(HttpServletRequest request, ServletRequestDataBinder binder) throws Exception { String[] allowedFields = {"name", "birthday"} binder.setAllowedFields(allowedFields);}并明确地将“允许”字段设置为仅表单中的那些字段,并排除主键,否则您将陷入混乱!!!



