XSS —> 核心就是设置cookie的 http only属性,过滤脚本信息。
CSRF —> 也是设置cookie的http only属性,根据referer请求头过滤请求来源,设置表单随机参数token。
SQL注入 —> 过滤恶意参数,比如SQL关键词过滤,预编译处理等。
DDoS攻击 —> 做好限流操作
zuul网关里加一个过滤器,过滤器里面去过滤一些特殊请求的脚本,根据referer请求头过滤,对请求的随机token进行校验,设置可以对参数进行校验,如果参数包含了SQL关键词说明要注入,就要对SQL关键词进行过滤。对IP地址可以进行基于redis的访问计数,比如一个ip地址一秒内连续访问5次,那么就直接禁止访问。
public class MyFilter extends ZuulFilter {
@Override
public String filterType() {
return PRE_TYPE;
}
@Override
public int filterOrder() {
return 1;
}
@Override
public boolean shouldFilter() {
return true;
}
@Override
public Object run() {
RequestContext ctx = RequestContext.getCUrrentContext();
HttpServletRequest request = ctx.getRequest();
// 拿到所有请求参数
// 遍历请求参数,检查是否带有XSS攻击脚本,是否带有SQL注入脚本
// 检查请求是否带有随机token参数
// 检查请求是否带有referer请求头
// 根据ip地址再redis进行计数,防止DDoS攻击
return null;
}
}