1 SQL注入防范
1、运行项目,在用户登录界面用户名处输入万能密码admin' or 1=1 --',密码处输入任意字符,点击登录,观察是否能绕过后台登录系统。
原因:项目使用PreparedStatement方法完成SQL语句的执行,该方法要求在执行SQL语句之前,必须告诉JDBC哪些值作为输入参数,解决了普通Statement方法的注入问题,极大的提高了SQL语句执行的安全性。
2、在项目中找到用户登录模块所使用的关键SQL语句。
3、修改登录模块的SQL查询相关语句如下所示:
4、再次运行项目,使用万能密码admin' or 1=1 --'进行登录,成功登录。
2 XSS跨站防范
1、运行项目,在网站中寻找能够提交信息的文本框。提交JS代码:<script>alert("xxx")</script>,发现出现提示框。
2、在项目中编写代码,在用户提交留言和评论信息时将<和>分别替换为>和<。
3、再次在留言板和文章评论中提交JS代码:<script>alert("xxx")</script>,观察提交的代码能够正常显示。
原因:在HTML中,某些字符是预留的。例如小于号 < 和大于号 > ,浏览器在解析他们时会误认为它们是标签。如果希望正确地显示预留字符,我们必须在HTML源代码中使用字符实体(character entities)。
常见字符的实体转换表 | |||
显示结果 | 描述 | 实体名称 | 实体编号 |
| 空格 | |   |
< | 小于号 | < | < |
> | 大于号 | > | > |
& | 和号 | & | & |
" | 引号 | " | " |
' | 撇号 | ' (IE不支持) | ' |
3 上传攻击防范
1、运行项目,在网站中寻找能够上传文件的位置,上传菜刀马。一开始是长传不成功的,因为有格式限制===》查看源代码
发现对文件类型有限制,而菜刀马文件是jsp文件。
2、将菜刀马的文件后缀修改为图片类型.jpg,上传。
3、接下来我们要改变源代码,注释掉文件上传限制,使jsp文件也能上传
记得把jsp文件的格式改成utf-8,上传
4、上传jsp后缀的菜刀马后,复制图片的链接,使用中国菜刀进行连接使用。
5.进来了