1、将请求方式由get改成post。 应get方式是host+参数名称+请求数据,请求数据放在请求地址上暴露给用户,可以使用户自己直接修改。 如果使用post的方式,请求数据会放到请求体中,不显示给用户,可以有效有防止用户直接修改请求数据进行猜想请求。
2、将get请求方式的请求数据进行加密处理。 因为一般来说数据库数据很多人直接使用自增长的主键id,用户可以直接修改id来进行数据的crud操作。 简单是的方式是使用base64加密即可,也可以自己使用自定义的加密规则进行请求数据的加密。以可以有效有防止用户直接修改请求数据。
3、对请求数据进行参数加密操作。 不管是对称加密还是非对称加密都可以有效的防止用户修改请求数据,数据合组与加密的规则可以自定义。
4、对每次请求分配一个操作token令牌。 在打开页面或者每次请求前都会当前用户或者Ip生成一个操作token令牌并保存在redis缓存或者数据中,在每次请求时都带上这个token令牌,如果token令牌在后台存在则允许用户进行数据库操作,操作成功后则删除此令牌并且设置令牌的超时时间,令牌超时则需用户刷新重新获取token令牌,以校验请求的合法性。可以有效的防止数据的重复提交与用户修改请求数据。
5、添加数据库数据权限功能。 给每一条数据都添加权限,当前用户进行数据操作前判断当前用户是否拥有操作目标数据的权限,如果没有则操作失败。 简单的方式为:为数据添加创建人id字段,判断当前用户id与创建数据人id是否一至,是否有操作权限。