在做网站主页的时候想起来可以通过主页的地址直接进入,跳过了登录界面,所以用了servlet和js实现了一个过滤器来处理这个漏洞
大概的模式就是先在servlet将表单的数据存到session中,然后在主页中写一个js来获取session里的数据,如果获取不到,就说明是非法登录,转到非法登录提示界面就行了。
下面是具体步骤。

使用可以先在servlet获取表单中用户的数据

1
2
String username = req.getParameter("username");
String password = req.getParameter("password");

将获取的数据存在session

先创建HttpSession接口对象

1
HttpSession session =req.getSession();

存到session中

1
session.setAttribute("username",name);

在主页中写一个js来获取session里的数据

1
2
3
4
5
6
7
8
<script>
function checkuser(){
var user= <%=session.getAttribute("username")%>;
if(user==null) {
window.location.href="illegal.html"
}
}
</script>

这个js一定要在页面加载完成前就开始运行,所以一定要在这里加

1
<body onload="checkuser()">

οnlοad=”checkuser()”意思就是在body加载的时候执行上面的js

最后测试运行,如果是直接输入地址来访问主页,就会跳转404界面

img