kpvalidate开辟验证组件,通用Java Web请求服务器端数据验证组件
小菜利用工作之余编写了一款Java小插件,主要是用来验证Web请求的数据,是在服务器端进行验证,不是简单的浏览器端验证。
小菜编写的仅仅是一款非常初级的组件而已,但小菜为它写了详细的说明文档。
简单介绍一下:
kpvalidate是一款为java Web开发的插件,它用来在Web后台验证提交数据的合法性。
目前大多数网站验证提交数据合法性都是在页面中用js脚本验证,这样的验证有很大的安全隐患因为脚本仅仅可以运行在客户端的浏览器上,恶意用户很容易绕过这个验证,随便一个简单的模拟提交,就可以成功提交非法数据,非法数据入库之后,容易形成xss攻击。
如果系统对安全性要求较高,我们就必须在后台进行数据验证,彻底避免非法数据提交。
考虑到这种验证应用比较普遍、模式比较单一,因此可以做成通用的组件,避免重复劳动。
而开辟验证组件正是为此而来,精心的设计、简洁的代码、方便的集成方式,让您的项目事半功倍。
如果您还在为数据验证而苦恼,那么不妨试试开辟验证组件吧~
关于数据库:
服务器端进行数据验证,不可避免的会用到规则配置,小菜经过思考,觉得还是把规则配置放到数据库中比较合理,因此这个小组件会用到以下四张表:
T_VALIDATE_PATH(访问路径表):用来配置请求的路径,主要是存放路径
T_VALIDATE_FIELD(验证字段表):用来配置验证的字段,主要是存放字段名称
T_FIELD_PATH(验证字段-访问路径对应表):用来对应请求路径和验证字段,是一个多对多关系。
T_VALIDATE_RULE(验证规则表):用来配置验证的规则,主要是存放验证规则(正则表达式)。
整体思路为:从request对象中拿到请求路径,去T_VALIDATE_PATH表中查询该路径的id,然后根据此id去T_FIELD_PATH表中查询该路径对应的验证字段,然后在用验证字段的id去T_VALIDATE_RULE表中查询规则。
好啦,小菜就简单介绍到这,官方网站有详细的介绍、使用说明、下载。
kpvalidate开辟验证组件,通用Java Web请求服务器端数据验证组件的更多相关文章
- MVC5 + EF6 + Bootstrap3 (15) 应用ModelState和Data Annotation做服务器端数据验证
Slark.NET-博客园 http://www.cnblogs.com/slark/p/mvc5-ef6-bs3-get-started-server-side-validation.html 系列 ...
- 前端组件库 - 搭建web app常用的样式/组件等收集列表(移动优先)
0. 前端自动化(Workflow) 前端构建工具 Webpack - module bundler Yeoman - a set of tools for automating developmen ...
- 微软企业库5.0 学习之路——第六步、使用Validation模块进行服务器端数据验证
前端时间花了1个多星期的时间写了使用jQuery.Validate进行客户端验证,但是那仅仅是客户端的验证,在开发项目的过程中,客户端的信息永远是不可信的,所以我们还需要在服务器端进行服务器端的验证已 ...
- Java Web请求和响应机制
1.请求响应流程图 =================== 服务器处理请求的流程: 服务器每次收到请求时,都会为这个请求开辟一个新的线程. 服务器会把客户端的请求数据封装到request对象中,req ...
- 我的Java之旅 第六课 JAVA WEB 请求与响应
一.有关URL编码 1.在URL的规范中定义了一些保留字符,如:: / ? & = @ % 等,在URI中有它的作用.如果要在URI中包含这些字符,必须转码,即%字符后跟十六进 ...
- Java web 之表单验证
按照软件工程师的定位来讲,表单验证应该要好好练习的 html javascript
- java Web 请求servlet绘制验证码简单例子
主要用来了解java代码怎么绘制验证码图片,实际开发中不会这样用 protected void doGet(HttpServletRequest request, HttpServletRespons ...
- java web请求过程
小技巧: 1.浏览器缓存 Ctrl+F5组合键刷新页面,浏览器会直接向目标URL发送请求,而不会使用浏览器缓存,并会在HTTP请求header中增加下面的请求头来告诉服务器不使用服务器缓存 发现在re ...
- java web接收POST数据
新建一个ServerForPOSTMethod的动态网站工程
随机推荐
- F#之旅0 - 开端
F#之旅0 - 开端 UWP的学习告一段落,CozyRSS的UWP版本并没有做.UWP跟wpf开发几乎一模一样,然后又引入了很多针对移动设备的东西,这部分有点像android.没啥太大的意思,不难,估 ...
- angular之上滑换页指令
healthmallDirectives.directive("goodsTopRefresh", ['$window',function ($window) { return { ...
- nodejs学习
转自于网络: ubuntu 下面安装 vim 的问题 1.输入vim时,显示: 程序"vim"已包含在以下软件包中: * vim * vim-gnome * vim-tiny * ...
- IO(1)
java的IO主要在java.io包下,包括字节流和字符流. 1 File File类可以对文件和目录进行操作,就是不能访问文件本身,其常用方法包括: 1)String getName(),返回fil ...
- ip二进制计算,与运算算网段
每8位二进制,各位从左到右对应的权值分别是 128,64,32,16, 8,4,2,1 .(即2的n-1次方,n是从右到左当前位的位数) 所以随便拿一个256以内的数给你化为二进制,都可以分解为权值 ...
- SPOJ DISUBSTR ——后缀数组
[题目分析] 后缀数组模板题. 由于height数组存在RMQ的性质. 那么对于一个后缀,与前面相同的串总共有h[i]+sa[i]个.然后求和即可. [代码](模板来自Claris,这个板子太漂亮了) ...
- iTunes使用总结
UDID查询 将设备连接至电脑,打开iTunes至设备摘要页面,鼠标点击"序列号"区域切换显示UDID
- 迷之bug
是这样的.要解决tbody滚动,而thead不动的布局问题,我把它们分别放在两个表格里,上面的只有thead,下面的只有tbody, 然后解决宽度对齐的问题,我用colgroup设置每列的宽度,用的都 ...
- javascript获取childNodes详情,删除空节点
chidNodes返回的是node的集合, 每个node都包含有nodeType属性. nodeType取值: 元素节点:1 属性节点:2 文本节点:3 注释节点:8 页面上是由无数个节点组成 ...
- margin-top使用需要注意的地方
偶然的机会发现一个有趣的现象:一个div(背景色为绿色)里面包含一个div,里面的div给一个margin-top:100px; 代码: <div style="background: ...