登陆模块的描述核心点:在做登录模块时,为了防止一些用户暴力破解,添加了验证码功能;为了防止一些用户不经过用户名密码的输入就直接访问后台资源,添加了拦截(过滤)器功能;为了避免用户在登录的时候进行SQL注入,欺骗服务器,我们在进行了JS端和JAVA端的过滤功能并且采用?传参来代替拼接字符串;为了保证用户密码信息的安全性,添加了MD5加密功能。用户登录的判断流程:首先判断验证码是否正确,验证码生成后是保存在session中的,将登录页面中用户所填写的验证码与session中的进行对比,如果一样,进行判断用户名密码,反之,提示验证码错误重新输入。验证码正确后,判断用户名,将用户填写的用户名与数据库中的用户名进行比较,如果正确,进行判断密码,反之,提示用户名错误或没有此用户。最后判断密码,密码是通过MD5加密的,在用户注册是进行了加密,将加密后的密码保存到数据库中,用户输入密码是再次进行加密,然后与数据库中的密码进行比较,如果正确,跳到成功页面,反之,提示密码错误。验证码:按客户需求:如果对安全要求不高的登陆,比如公司内部系统的登陆,对安全要求不高,就不需要验证码之类的功能;如果是对安全要求比较高的场景,比如互联网登陆,对安全要求特别高的,我们需要防止暴力破解,加上验证码;使用验证码及实现验证码的思路:(1)使用验证码可以防止用户恶意登录、恶意注册和暴力破解,增加安全性。(2)实现验证的流程:a.生成随即的数字字母组合;b.生成干扰码(点和线);c.将数字字母组合存入session中d.将数字字母点线组合起来生成图片,以流的形式输出。(3)思路:建一个servlet——img标签中的src路径保证是一个图片(jpg/gif/png),其中可以放servlet(js/action).servlet默认走的是doget(当method的上面标明是post才走post,其他的没有特殊标明的默认都是get)——在doget方法中写一些方法,一个生成随即字母数字组合,一个生成干扰码点线,然后再将数字和干扰码组合生成图片,通过流(outputstrim)输出。生成的数字字母可以存在session中,用户登录时,先在session中判断验证码是否一致。MD5加密:MD5加密是对密码的保护,我们可以在登陆时在jsp页面对密码进行md5加密,同样注册时也要对密码进行加密,这样登陆时md5转码后的密码才可以对应数据库查询出的md5转码后的密码,正确匹配;对于没有登陆直接访问成功页面,我们也需要加过滤器,过滤掉没有登陆而直接访问的请求。MD5是一个插件,导入后在登陆和注册填写密码后,调用hex_md5(password)方法,将密码转成md5码传入后台。作用:防止密码泄漏。过滤器:如果不加过滤器的情况下,用户只要知道页面路径就可以直接输入地址访问,加上过滤器后,可以防止用户非法进入登陆成功后的页面或系统。