- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第4章 Struts 2输入校验 输入校验分为客户端校验和服务器端校验。客户端校验可以过滤掉用户的错误操作,是第一道防线,一般使用JavaScript代码实现。仅有客户端验证还是不够的。攻击者还可以绕过客户端校验直接进行非法输入,这样可能会引起系统的异常,所以必须加上服务器端的验证。但仅有服务器端验证也是不行的,客户的错误操作总是提交到服务器,由服务器端进行验证返回错误信息,这样会加重服务器的负担。所以客户端验证和服务器端验证缺一不可,两者结合起来才可以构建健壮的系统。 4.1 输入校验的意义 4.1.1 什么是输入校验 4.1.2 为什么要进行输入校验 4.1.1 什么是输入校验 输入校验,从字面上来看好像是指对如输入的密码或者用户名输入错误的校验。其实这个不算输入校验,这个算是业务逻辑的判断了。输入校验是对输入的用户名长度、密码长度、年龄信息等的判断。为了给大家一个感官上的认识,现在打开163邮箱的注册页面,如图4-1所示。 4.1.2 为什么要进行输入校验 那为什么要进行输入校验呢?使用它有什么好处呢?为了更好地说明,来看下面这个注册页面,如图4-3所示。 现在按常规输入用户注册信息,单击“注册”按钮进行注册。页面跳转到注册信息显示页,如图4-4所示。 4.2 客户端校验 输入校验分为客户端校验和服务器端校验。客户端校验可以过滤掉用户的错误操作,是第一道防线,一般使用JavaScript代码实现。下面介绍如何通过编写JavaScript来实现客户端校验。 4.2.1 正则表达式 客户端校验一般都使用JavaScript来进行输入的校验。JavaScript对输入判断都会使用到正则表达式。正则表达式是字符串处理的利器,功能非常强大。 正则表达式的功能非常强大,通过它可以进行字符串匹配、字符串查找、字符串替换。今天重点介绍字符串的匹配功能,字符串的匹配功能对于输入校验提供了很大的帮助。先看下面简单的正则表达式的示例。 正则表达式:a.b 匹配abb,acb,等 “.“是正则表达式的特殊字符,它的含义是匹配所有的字符还有空格和Tab键。 4.2.2 JavaScript中使用正则表达式 下面以一个简单示例来介绍在JavaScript中使用正则表达式进行字符串匹配。程序要求必须输入数字,如果输入的不是数字就弹出提示,代码如下所示。 4.2.3 JavaScript完成客户端校验 现在为注册示例添加客户端校验功能。首先来看下有哪些输入校验规则。 (1)用户名、密码、确认密码必须输入。 (2)用户名只能是数字或者字母,长度为6~20之间。 (3)密码,确认密码必须是数字或者字母,长度为6~20之间。 (4)密码和确认密码必须相同。 (5)年龄必须为整数而且必须是有效的年龄值。 (6)出生日期必须为正确的日期格式如1988-01-03,而且只能是19**年到200*年之间。 (7)邮箱地址必须为合法的邮箱地址。 4.3 服务器端校验 前面介绍了如何添加客服端校验,但是仅有客户端验证还是不够的。攻击者还可以绕过客户端校验直接进行非法输入,这样可能会引起系统的异常,所以必须加上服务器端的验证。下面来看如何添加服务器端校验。 4.3.1 服务器端校验的重要性 在上一个示例中为注册页面添加了客户端校验,如果用户输入的信息不合法则无法提交。这时这里要注意的时,使用JavaScript增加客户端校验仅仅使得非法的数据无法提交,但是一些侵入者完全可以采用其他的方式来进行提交。下面来看如何绕过这些JavaScript校验代码? 首先可以直接把这个注册页面下载下来,然后通过删除那些JavaScript代码,再修改表单的提交地址。这样的话,就算是输入不合法的信息,客户端校验也起不了作用了,因为连JavaScript代码都被删除掉了。 通过一种如此简单的方法就可以绕过这些JavaScript校验代码。那些侵入者很可能使用更加高级的手段来绕过这些JavaScript代码,从而直接提交非法的数据。要避免这种情况就必须添加服务器端校验,服务端校验是整个Web应用中最重要的一道防线。用户使无法直接接触到服务器端代码的,这样的话就算是客户端校验被人绕过,仍然能够通过服务器端校验来阻止用户的非法输入。服务器端校验对于系统的安全性、完整性、健壮性起到了至关重要的作用。 那是不是客户端校验根本就没有什么意义了呢?其实不是,因为并不是每个用户都有这样恶意侵入的想法。大部分的用户都是采用的正常的输入,使用客户端校验能够过滤掉用户的错误操作。如果没有客户端校验,那么就算用户只是一个错误的操作,服务器端就要对其输入的信息进行处理并返回错误提示,这样会大大增加服务器端的负载。客户端校验就像是一把锁,能够防君子但是不能防小人。同样客户端校验和服务器端校验是
您可能关注的文档
最近下载
- 2023年1月13日四川省公安厅遴选公务员面试真题及答案解析.doc VIP
- 广东省钢琴考级指定曲目.pdf VIP
- 3.實施2015版藥典无菌实验室改造解决方案.ppt VIP
- 船舶结构与货运PPT完整全套教学课件.pptx VIP
- [工学]画法几何及水利土建制图习题答案(2022年-2023年).pdf VIP
- 第2课 教师节快乐(核心素养教案)2025统编版道德与法治二年级上册.docx
- 土壤中主要污染物及其迁移转化.ppt VIP
- SN∕T 1537-2023 进口矿产品放射性检验规程.pdf
- (牛顿第一定律练习题1.doc VIP
- 《3 学习乐谱,记录你的音乐生活》精品教案.docx VIP
文档评论(0)