XSS —> 核心就是设置cookie的 http only属性,过滤脚本信息。
    CSRF —> 也是设置cookie的http only属性,根据referer请求头过滤请求来源,设置表单随机参数token。
    SQL注入 —> 过滤恶意参数,比如SQL关键词过滤,预编译处理等。
    DDoS攻击 —> 做好限流操作

    image.png

    zuul网关里加一个过滤器,过滤器里面去过滤一些特殊请求的脚本,根据referer请求头过滤,对请求的随机token进行校验,设置可以对参数进行校验,如果参数包含了SQL关键词说明要注入,就要对SQL关键词进行过滤。对IP地址可以进行基于redis的访问计数,比如一个ip地址一秒内连续访问5次,那么就直接禁止访问。

    1. public class MyFilter extends ZuulFilter {
    2. @Override
    3. public String filterType() {
    4. return PRE_TYPE;
    5. }
    6. @Override
    7. public int filterOrder() {
    8. return 1;
    9. }
    10. @Override
    11. public boolean shouldFilter() {
    12. return true;
    13. }
    14. @Override
    15. public Object run() {
    16. RequestContext ctx = RequestContext.getCUrrentContext();
    17. HttpServletRequest request = ctx.getRequest();
    18. // 拿到所有请求参数
    19. // 遍历请求参数,检查是否带有XSS攻击脚本,是否带有SQL注入脚本
    20. // 检查请求是否带有随机token参数
    21. // 检查请求是否带有referer请求头
    22. // 根据ip地址再redis进行计数,防止DDoS攻击
    23. return null;
    24. }
    25. }