关于检查客户端提交的请求参数

简介: 关于检查客户端提交的请求参数

关于检查客户端提交的请求参数


首先,客户端的提交请求参数都应该有相应的数据规则,并且,需要通过正则表达式或其它判断方式,以保证最终被处理的数据都是符合数据规则的,例如用户名的组成元素、密码的长度、电子邮箱的格式等。

在客户端中,在提交请求之前,就应该对所有需要被提交的数据进行检查,避免将格式有误的数据提交到服务器。

在服务器端中,是通过控制器接收请求参数的,在控制器接收到请求参数时,也应该第一时间就对这些参数进行检查,如果存在格式有误的数据,就应该直接响应“错误”,不予处理!

在服务器端的开发人员眼里,所有由客户端提交的数据,都应该视为“不可靠”的数据!

其实,只需要在控制器中对数据进行了检查,就基本可以保证服务器端后续处理的数据不会出现问题,客户端的检查就“看似”没有意义了,但是,客户端仍应该使用同样的标准,检查所有即将提交到服务器的数据,因为客户端的检查是在客户/用户的设备中执行的,不消耗服务器的性能,可以将绝大部分原本数据就有问题的请求“拦截”下来,避免这些请求被提交到服务器,以减轻服务器端的压力!

在某些软件中,可能在业务层中,还会对业务方法的参数再次进行检查!其实,如果控制器已经完成了检查,且由控制器调用业务方法,这样的业务方法是不需要检查参数的!但是,可能某些业务方法并不是由控制器调用的,在调用之前,可能没有检查数据的格式,甚至,调用业务方法的“角色”太多,为了统一管理数据的有效性规则,就直接在业务层中检查数据!


目录
相关文章
|
2月前
|
安全 Java 应用服务中间件
除了提供者名称错误,还有哪些原因可能导致`NoSuchProviderException`异常
`NoSuchProviderException`异常不仅可能由提供者名称错误引起,还可能由于提供者未正确安装、JVM版本不兼容、安全策略限制或类路径问题等原因导致。
82 1
|
4月前
|
SQL 前端开发 Java
如何干掉你代码里的if,让请求参数校验变的更加优雅?
日常开发过程中,代码各处充满着“陷阱”,稍不留神,就容易出现各类稀奇古怪的Bug,这回咱们来说开发中经常处理的情况,即:参数校验!大多数需要校验参数的情况,都出现在”数据交互“这个场景下,比如前端向后端提交表单数据、后端调用兄弟部门的RPC接口等。今天我们重点站在后端的角度,聊聊不同场景下的多种参数校验手段。
|
6月前
|
NoSQL Java 数据库
重复点击提交、产生多笔数据、保持数据只操作一次---->接口幂等性校验
重复点击提交、产生多笔数据、保持数据只操作一次---->接口幂等性校验
78 0
|
移动开发 应用服务中间件 Android开发
踩坑记录:请求接口status返回0
踩坑记录:请求接口status返回0
踩坑记录:请求接口status返回0
|
API
Post 提交错误 远程服务器返回错误: (411) 所需的长度
Post 提交错误 远程服务器返回错误: (411) 所需的长度
178 0
怎么修改请求的参数和响应
怎么修改请求的参数和响应
104 0
|
Ubuntu Shell
ros安装的时候出现hash值校验失败的错误的解决方法
ros安装的时候出现hash值校验失败的错误的解决方法
|
NoSQL Redis 数据库
重复提交,你是如何处理的?
幂等性就是说无论你执行几次请求,其结果是一样的。说到了幂等就不得不说重复提交了,你连续点击提交按钮,理论上来说这是同一条数据,数据库应该只能存入一条,而实际上存放了多条,这就违反了幂等性。因此我们就需要做一些处理,来保证连续点击提交按钮后,数据库只能存入一条数据。
689 0
|
网络安全
http 0 返回为空排查方案
一,服务连接超时或者失败       注意:您的notify_url在请求时如果传值做了encode也有可能导致http0,大家在如果报错可以调整一下异步地址测试一下(错误notify_ur如下图)。
1566 12
|
SQL 安全 数据库
基于令牌的服务器访问验证失败,出现基础结构错误。请检查以前的错误
一数据库服务器(SQL Server 2014)上的一个作业执行报错,具体错误信息如下:   Executed as user: NT SERVICE\SQLSERVERAGENT. 用户 'xxxx\xxxxx$' 登录失败。
1954 0
基于令牌的服务器访问验证失败,出现基础结构错误。请检查以前的错误