Web安全
Web业务平台的不安全性主要是由Web平台的特点,即开放性所致。
实验任务1 SQL注入防范
该项目使用了PreparedStatement方法完成SQL语句的执行,该方法要求在执行SQL语句之前,必须告诉JDBC哪些值作为输入参数,解决了普通Statement方法的注入问题,极大的提高了SQL语句执行的安全性。所以在用户登录界面用户名处输入万能密码admin' or 1=1 --',密码处输入任意字符,点击登录,无法绕过后台登陆。
修改登录模块的SQL查询相关语句后,再次运行项目,使用万能密码admin' or 1=1 --'即可登录。且登陆的账号为数据库里第一个账号。
实验任务2 XSS跨站防范
运行项目,在网站中寻找能够提交信息的文本框。提交JS代码:<script>alert("xxx")</script>,代码无法生效。
原因:在HTML中,某些字符是预留的。例如小于号 < 和大于号 > ,浏览器在解析他们时会误认为它们是标签。如果希望正确地显示预留字符,我们必须在HTML源代码中使用字符实体(character entities)。
在项目中编写代码,在用户提交留言和评论信息时将<和>分别替换为>和<,提交的代码即可正常显示。