Struts2输入校验

Struts2输入校验

ID:45365382

大小:696.00 KB

页数:21页

时间:2019-11-12

Struts2输入校验_第1页
Struts2输入校验_第2页
Struts2输入校验_第3页
Struts2输入校验_第4页
Struts2输入校验_第5页
资源描述:

《Struts2输入校验》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、第4章Struts2输入校验输入校验分为客户端校验和服务器端校验。客户端校验可以过滤掉用户的错误操作,是第一道防线,一般使用JavaScript代码实现。仅有客户端验证还是不够的。攻击者还可以绕过客户端校验直接进行非法输入,这样可能会引起系统的异常,所以必须加上服务器端的验证。但仅有服务器端验证也是不行的,客户的错误操作总是提交到服务器,由服务器端进行验证返回错误信息,这样会加重服务器的负担。所以客户端验证和服务器端验证缺一不可,两者结合起来才可以构建健壮的系统。4.1输入校验的意义4.1.1什么是输入校验4.1.2为什么要进行输入校验4.1.1什么是输入校验输入校验

2、,从字面上来看好像是指对如输入的密码或者用户名输入错误的校验。其实这个不算输入校验,这个算是业务逻辑的判断了。输入校验是对输入的用户名长度、密码长度、年龄信息等的判断。为了给大家一个感官上的认识,现在打开163邮箱的注册页面,如图4-1所示。4.1.2为什么要进行输入校验那为什么要进行输入校验呢?使用它有什么好处呢?为了更好地说明,来看下面这个注册页面,如图4-3所示。现在按常规输入用户注册信息,单击“注册”按钮进行注册。页面跳转到注册信息显示页,如图4-4所示。4.2客户端校验输入校验分为客户端校验和服务器端校验。客户端校验可以过滤掉用户的错误操作,是第一道防线,一

3、般使用JavaScript代码实现。下面介绍如何通过编写JavaScript来实现客户端校验。4.2.1正则表达式客户端校验一般都使用JavaScript来进行输入的校验。JavaScript对输入判断都会使用到正则表达式。正则表达式是字符串处理的利器,功能非常强大。正则表达式的功能非常强大,通过它可以进行字符串匹配、字符串查找、字符串替换。今天重点介绍字符串的匹配功能,字符串的匹配功能对于输入校验提供了很大的帮助。先看下面简单的正则表达式的示例。正则表达式:a.b匹配abb,acb,等“.“是正则表达式的特殊字符,它的含义是匹配所有的字符还有空格和Tab键。4.2.

4、2JavaScript中使用正则表达式下面以一个简单示例来介绍在JavaScript中使用正则表达式进行字符串匹配。程序要求必须输入数字,如果输入的不是数字就弹出提示,代码如下所示。4.2.3JavaScript完成客户端校验现在为注册示例添加客户端校验功能。首先来看下有哪些输入校验规则。(1)用户名、密码、确认密码必须输入。(2)用户名只能是数字或者字母,长度为6~20之间。(3)密码,确认密码必须是数字或者字母,长度为6~20之间。(4)密码和确认密码必须相同。(5)年龄必须为整数而且必须是有效的年龄值。(6)出生日期必须为正确的日期格式如1988-01-03,而

5、且只能是19**年到200*年之间。(7)邮箱地址必须为合法的邮箱地址。4.3服务器端校验前面介绍了如何添加客服端校验,但是仅有客户端验证还是不够的。攻击者还可以绕过客户端校验直接进行非法输入,这样可能会引起系统的异常,所以必须加上服务器端的验证。下面来看如何添加服务器端校验。4.3.1服务器端校验的重要性在上一个示例中为注册页面添加了客户端校验,如果用户输入的信息不合法则无法提交。这时这里要注意的时,使用JavaScript增加客户端校验仅仅使得非法的数据无法提交,但是一些侵入者完全可以采用其他的方式来进行提交。下面来看如何绕过这些JavaScript校验代码?首先

6、可以直接把这个注册页面下载下来,然后通过删除那些JavaScript代码,再修改表单的提交地址。这样的话,就算是输入不合法的信息,客户端校验也起不了作用了,因为连JavaScript代码都被删除掉了。通过一种如此简单的方法就可以绕过这些JavaScript校验代码。那些侵入者很可能使用更加高级的手段来绕过这些JavaScript代码,从而直接提交非法的数据。要避免这种情况就必须添加服务器端校验,服务端校验是整个Web应用中最重要的一道防线。用户使无法直接接触到服务器端代码的,这样的话就算是客户端校验被人绕过,仍然能够通过服务器端校验来阻止用户的非法输入。服务器端校验对

7、于系统的安全性、完整性、健壮性起到了至关重要的作用。那是不是客户端校验根本就没有什么意义了呢?其实不是,因为并不是每个用户都有这样恶意侵入的想法。大部分的用户都是采用的正常的输入,使用客户端校验能够过滤掉用户的错误操作。如果没有客户端校验,那么就算用户只是一个错误的操作,服务器端就要对其输入的信息进行处理并返回错误提示,这样会大大增加服务器端的负载。客户端校验就像是一把锁,能够防君子但是不能防小人。同样客户端校验和服务器端校验是紧密结合的,两者缺一不可。4.3.2完成服务器端输入校验现在以上面那个示例的要求来添加服务器端校验。为了能更好地观察服务器端

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。