Java servlet非法字符



我有一个Java web应用程序,允许用户创建帐户并登录。由于某种原因,当某人向服务器发送了足够多的非法字符后,应用程序中发送电子邮件的部分被禁用。

要解决这个问题,

我创建了一个接收所有传入请求的主过滤器。一旦请求到达服务器,我就运行这段代码。

if (request instanceof HttpServletRequest) {
String url = ((HttpServletRequest)request).getRequestURL().toString();
String query = ((HttpServletRequest)request).getQueryString();
}

我创建了一个三层系统,用来过滤已知和未知。

一级对于不需要用户登录到服务器的请求。exp ~忘记密码,创建帐户要求-所有base64参数,在活动列表

层2对于需要活动登录的请求Exp ~我的账户,编辑账户,搜索系统要求-所有base64参数,内部活动列表,有效登录

层3对于其他的一切exp ~ login.php无效(这是Java)

通过检查url,我可以确定请求的去向。然后,我可以对前两层运行它,看看是否一切都检查出来了,查询实际上是base64格式的。服务器要求所有的字符串数据都是base64格式。如果不是,则不处理该请求。

最新更新