...按着马老师的代码写的u = User.validate(username,password) ;//说...
展开全部 //用户类public Class User(){ public String userName; public String passWord; public User(){} public User(String userName,String passWord){ this.userName=userName; this.passWord=passWord; }}//校验类public Class Check{ public User u; public Check(){//初始化用户名密码 u=new User("login","12345"); } //验证输入与初始 public boolean validate(String name,String passWord){ if(!"".equals(u.userName)&&null!=u.userName&&!"".equals(u.passWord&&u.passWord!=null)){ if (name.equals(u.userName)&&passWord.equals(u.passWord)){ return true; }else{ return false; } }else { return false; } }}//执行操作类public Class Operate{ public Operate(){} public String login( String userName,String passWord){ Check ck=new Check(); String msg="";//将要返回的提示信息 boolean result=ck.validate(userName,passWord); if(true==result){ String msg="欢迎"+userName+"光临!"; }else{ String msg="错误的用户名或密码!"; } return msg; }}//测试public Class Test{ public static void main(String args){ Operate op=new Operate(); java.util.Scanner in=new Scanner(System.in); String userName=in.next();//获取输入的姓名 String passWord=in.next();//获取输入的密码 String msg=op.login(userName,passWord); System.out.println(msg); }}
Struts2的Action使用validate()方法,提示空指针错误!
String path = request.getContextPath(); String basePath = request.getScheme() + "://" + request.getServerName() + ":" + request.getServerPort() + path + "/";%> "> jQuery Validate验证框架详解 /validate/jquery-1.6.2.min.js"> /validate/jquery.validate.min.js"> $(function(){ var validate = $("#myform").validate({ debug: true, //调试模式取消submit的默认提交功能 //errorClass: "label.error", //默认为错误的样式类为:error focusInvalid: false, //当为false时,验证无效时,没有焦点响应 onkeyup: false, submitHandler: function(form){ //表单提交句柄,为一回调函数,带一个参数:form alert("提交表单"); form.submit(); //提交表单 }, rules:{ myname:{ required:true }, email:{ required:true, email:true }, password:{ required:true, rangelength:[3,10] }, confirm_password:{ equalTo:"#password" } }, messages:{ myname:{ required:"必填" }, email:{ required:"必填", email:"E-Mail格式不正确" }, password:{ required: "不能为空", rangelength: $.format("密码最小长度:{0}, 最大长度:{1}。
") }, confirm_password:{ equalTo:"两次密码输入不一致" } } }); }); 用户名: E-Mail: 登陆密码: 确认密码:
怎么用SQL注入破解密码
这篇文章对你应该有用: http://www.xue5.com/itedu/200707/150732_4.html 入侵破解:SQL Server应用程序中的高级SQL注入 资料来源:学网( www.xue5.com ),原文地址: http://www.xue5.com/itedu/200707/150732_4.htmlSQL SERVER自动地将整型转化为varchar型的值。
[Second-Order SQL Injection] 即使应用程序总是过滤单引号,攻击者依然能够注入SQL同样通过应用程序使数据库中的数据重复使用。
例如,攻击者可能利用下面的信息在应用程序中注册: Username:admin'— Password:password 应用程序正确过滤了单引号,返回了一个类似这样的insert语句: insert into users values(123,'admin''—','password',0xffff) 我们假设应用程序允许用户修改自己的密码。
这个ASP脚本程序首先保证用户设置新密码前拥有正确的旧密码。
代码如下: username = escape( Request.form("username") ); oldpassword = escape( Request.form("oldpassword") ); newpassword = escape( Request.form("newpassword") ); var rso = Server.CreateObject("ADODB.Recordset"); var sql = "select * from users where username = '" + username + "' and password = '" + oldpassword + "'"; rso.open( sql, cn ); if (rso.EOF) { … 设置新密码的代码如下: sql = "update users set password = '" + newpassword + "' where username = '" + rso("username") + "'" rso("username")为登陆查询中返回的用户名 当username为admin'—时,查询语句为: update users set password = 'password' where username='admin'—' 这样攻击者可以通过注册一个admin'—的用户来根据自己的想法来设置admin的密码。
这是一个非常严重的问题,目前在大型的应用程序中试图去过滤数据。
最好的解决方法是拒绝非法输入,这胜于简单地努力去修改它。
这有时会导致一个问题,非法的字符在那里是必要的,例如在用户名中包含'符号,例如 O'Brien 从一个安全的观点来看,最好的解答是但引号不允许存在是一个简单的事实。
如果这是无法接受的话,他们仍然要被过滤;在这种情况下,保证所有进入SQL查询的数据都是正确的是最好的方法。
如果攻击者不使用任何应用程序莫名其妙地往系统中插入数据,这种方式的攻击也是可能的。
应用程序可能有email接口,或者可能在数据库中可以存储错误日志,这样攻击者可以努力控制它。
验证所有数据,包括数据库中已经存在的数据始终是个好的方法。
确认函数将被简单地调用,例如: if(not isValid("email",request.querystring("email"))) then response.end 或者类似的方法。
[长度限制] 为了给攻击者更多的困难,有时输入数据的长度是被限制的。
当这个阻碍了攻击时,一个小的SQL可以造成很严重的危害。
例如: Username:';shutdown— 这样只用12个输入字符就将停止SQL SERVER实例。
文章整理:学网 http://www.xue5.com (本站) [1] [2] [3] [4] [5] [6] [7] [8] [9] [10] 另一个例子是: drop table 如果限定长度是在过滤字符串后应用将会引发另一个问题。
假设用户名被限定16个字符,密码也被限定16个字符,那么下面的用户名和密码结合将会执行上面提到的shutdown命令: Username:aaaaaaaaaaaaaaa' Password:'; shutdown— 原因是应用程序尝试去过滤用户名最后的单引号,但是字符串被切断成16个字符,删除了过滤后的一个单引号。
这样的结果就是如果密码字段以单引号开始,它可以包含一些SQL语句。
既然这样查询看上去是: select * from users where username='aaaaaaaaaaaaaaa'' and password=''';shutdown— 实际上,查询中的用户名已经变为: aaaaaaaaaaaaaaa' and password=' 因此最后的SQL语句会被执行。
[审计] SQL SERVER包含了丰富的允许记录数据库中的各种事件的审计接口,它包含在sp_traceXXX类的函数中。
特别有意思的是能够记录所有SQL语句,然后在服务器上执行的T-SQL的事件。
如果这种审计是被激活的,我们讨论的所有注入的SQL查询都将被记录在数据库中,一个熟练的数据库管理员将能够知道发生了什么事。
不幸地,如果攻击者追加以下字符串: Sp_password 到一个Transact-SQL语句中,这个审计机制记录日志如下: --'sp_password' was found in the text of this event. -- The text has been replaced with this comment for security reasons. 这种行为发生在所有的T-SQL日记记录中,即使'sp_password'发生在一个注释中。
这个过程打算通过sp_password隐藏用户的密码,但这对于一个攻击者来说是非常有用的方法。
因此,为了隐藏所有注入,攻击者需要简单地在'—'注释字符后追加sp_password,例如: Username:admin'—sp_password 事实上一些被执行的SQL将被记录,但是查询本身将顺利地从日志中消失。
[防范] 这部分讨论针对记述的攻击的一些防范。
我们将讨论输入确认和提供一些简单的代码,然后我们将从事SQL SERVER锁定。
[输入验证] 输入验证是一个复杂的题目。
比较有代表性的是,自从过于严密地确认倾向于引起部分应用程序的暂停,输入确认问题很难被解决,在项目开发中投入很少的注意力在输入确认上。
输...
jQuery Validate插件中用equalTo验证表单一致出问题
//定义中文消息var cnmsg = {required: “必选字段”,remote: “请修正该字段”,email: “请输入正确格式的电子邮件”,url: “请输入合法的网址”,date: “请输入合法的日期”,dateISO: “请输入合法的日期 (ISO).”,number: “请输入合法的数字”,digits: “只能输入整数”,creditcard: “请输入合法的信用卡号”,equalTo: “请再次输入相同的值”,accept: “请输入拥有合法后缀名的字符串”,maxlength: jQuery.format(“请输入一个长度最多是 {0} 的字符串”),minlength: jQuery.format(“请输入一个长度最少是 {0} 的字符串”),rangelength: jQuery.format(“请输入一个长度介于 {0} 和 {1} 之间的字符串”),range: jQuery.format(“请输入一个介于 {0} 和 {1} 之间的值”),max: jQuery.format(“请输入一个最大为 {0} 的值”),min: jQuery.format(“请输入一个最小为 {0} 的值”)};
使用bootstrapValidator验证时,提示信息一起出来了
BootstrapValidator是基于bootstrap3的jquery表单验证插件,是最适合bootstrap框架的表单验证插件,在工作中用到此框架就写下自己在使用中积累的一些心得当按钮的类型为submit时,使用bootstrapValidator的isValid()能够使验证表单正常工作,但当button的type类型为button时,只调用bootstrapValidator的isValid()方法无法正常工作。
这时候就需要使用bootstrapValidator的validate()方法进行激活。
1、JSP中* 新增管理员 登录名 用户名 密码 角色 ${role.roleName} 确定 取消
怎么用jquery.validate.js 进行 remote 后台验证
两种方式。
1、将校验规则写到控件中$.validator.setDefaults({ submitHandler: function() { alert("提交事件!"); } });$().ready(function() { $("#commentForm").validate(); }); 输入您的名字,邮箱,URL,备注。
Name (必需, 最小两个字母) E-Mail (必需) URL (可选) 备注 (必需) 2、将校验规则写到 js 代码中$().ready(function() {// 在键盘按下并释放及提交后验证提交表单 $("#signupForm").validate({ rules: { firstname: "required", lastname: "required", username: { required: true, minlength: 2 }, password: { required: true, minlength: 5 }, confirm_password: { required: true, minlength: 5, equalTo: "#password" }, email: { required: true, email: true }, topic: { required: "#newsletter:checked", minlength: 2 }, agree: "required" }, messages: { firstname: "请输入您的名字", lastname: "请输入您的姓氏", username: { required: "请输入用户名", minlength: "用户名必需由两个字母组成" }, password: { required: "请输入密码", minlength: "密码长度不能小于 5 个字母" }, confirm_password: { required: "请输入密码", minlength: "密码长度不能小于 5 个字母", equalTo: "两次密码输入不一致" }, email: "请输入一个正确的邮箱", agree: "请接受我们的声明", topic: "请选择两个主题" } }); messages 处,如果某个控件没有 message,将调用默认的信息 验证完整的表单 名字 姓氏 用户名 密码 验证密码 Email 请同意我们的声明 我乐意接收新信息 主题 (至少选择两个) - 注意:如果没有勾选“我乐意接收新信息”以下选项会隐藏,但我们这里作为演示让它可见 Marketflash Latest fuzz Mailing list digester Please select at least two topics you'd like to receive.
转载请注明出处51数据库 » validatepassword