1、跨站点请求伪造 跨站点脚本编制 通过框架钓鱼漏洞

主要是通过在url或参数中添加脚本如:

1、URL中添加

2、参数value=。

添加一个过滤器对特殊字符进行拦截

package com.xxx.sys.filter;

import java.io.IOException;

import java.util.Enumeration;

import javax.servlet.Filter;

import javax.servlet.FilterChain;

import javax.servlet.FilterConfig;

import javax.servlet.ServletException;

import javax.servlet.ServletRequest;

import javax.servlet.ServletResponse;

import javax.servlet.http.HttpServletRequest;

import javax.servlet.http.HttpServletResponse;

import org.apache.log4j.Logger;

/**

* 非法字符过滤器

* 1.所有非法字符配置在web.xml中,如需添加新字符,请自行配置

* 2.请注意请求与相应时的编码格式设置,否则遇到中文时,会出现乱码(GBK与其子集应该没问题)

* @author lee

*

*/

public class CharFilter implements Filter {

private Logger log = Logger.getLogger(CharFilter.class);

private String encoding;

private String[] legalNames;

private String[] illegalChars;

public void init(FilterConfig filterConfig) throws ServletException {

encoding = filterConfig.getInitParameter("encoding");

legalNames = filterConfig.getInitParameter("legalNames").split(",");

illegalChars = filterConfig.getInitParameter("illegalChars").split(",");

}

public void destroy() {

encoding = null;

legalNames = null;

illegalChars = null;

}

public void doFilter(ServletRequest request, ServletResponse response,

FilterChain filterChain) throws IOException, ServletException {

HttpServletRequest req = (HttpServletRequest)request;

HttpServletResponse res = (HttpServletResponse) response;

//必须手动指定编码格式

req.setCharacterEncoding(encoding);

String tempURL = req.getRequestURI();

log.info(tempURL);

Enumeration params = req.getParameterNames();

//是否执行过滤 true:执行过滤 false:不执行过滤

boolean executable = true;

//非法状态 true:非法 false;不非法

boolean illegalStatus = false;

String illegalChar = "";

//对参数名与参数进行判断

w:while(params.hasMoreElements()){

String paramName = (String) params.nextElement();

executable = true;

//密码不过滤

if(paramName.toLowerCase().contains("password")){

executable = false;

}else{

//检查提交参数的名字,是否合法,即不过滤其提交的值

f:for(int i=0;i

if(legalNames[i].equals(paramName)){

executable = false;

break f;

}

}

}

if(executable){

String[] paramValues = req.getParameterValues(paramName);

f1:for(int i=0;i

String paramValue = paramValues[i];

f2:for(int j=0;j

illegalChar = illegalChars[j];

if(paramValue.indexOf(illegalChar) != -1){

illegalStatus = true;//非法状态

break f2;

}

}

if(illegalStatus){

break f1;

}

}

}

if(illegalStatus){

break w;

}

}

//对URL进行判断

for(int j=0;j

illegalChar = illegalChars[j];

if(tempURL.indexOf(illegalChar) != -1){

illegalStatus = true;//非法状态

break;

}

}

if(illegalStatus){

//必须手动指定编码格式

res.setContentType("text/html;charset="+encoding);

res.setCharacterEncoding(encoding);

res.getWriter().print("");

}else{

filterChain.doFilter(request, response);

}

}

}

web.xml code

charFilter

com.xxx.sys.filter.CharFilter

encoding

UTF-8

legalNames

content1,ver,historyURL,listURL

illegalChars

|,$,@,',",\',\",,(,),+,CR,LF,\",",\,http

文章如果对你有帮助,

java跨站点脚本编制_跨站点请求伪造 跨站点脚本编制 通过框架钓鱼漏洞 | 学步园...相关推荐

  1. java坦克大战的总结_坦克大战总结(估计是马士兵的坦克大战) | 学步园

    1. 匿名类: 2.画圆方法:public void paint(Graphics g) { Color c=g.getColor();保存原来的前景色 g.setColor(Color.RED); ...

  2. python脚本加密_教你如何基于python实现脚本加密

    这篇文章主要介绍了如何基于python实现 脚本加密,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 from pathlib import Path ...

  3. Linux Shell脚本专栏_监控100台服务器磁盘利用率脚本_07

    文章目录 监控100台服务器磁盘利用率脚本 1. 远程连接生成sshkey 2. 复制ssh公钥到目标服务器 3. 登录目标服务器查看 4. 私钥免登录 5. 192.168.43.134 服务器创建 ...

  4. Linux Shell脚本专栏_批量创建100用户并设置密码脚本_03

    文章目录 一.简单需求实现流程 1. 添加用户 2. 给用户设置密码 二.企业需求实现流程 2.1. 脚本准备工作 2.2. 企业级脚本 2.2. 需求说明 2.3. 企业级脚本说明 三.实战 3.1 ...

  5. 获取脚本路径_如何快速有效的写ftp脚本

    概述 之前测试写的一个脚本,主要是为了实现FTP自动上传和下载文件.大家可以参考下: 基础环境配置 [root@pxzxdm01 ~]# useradd -d /home/ftp1 ftp1 [roo ...

  6. java中对于框架的理解_接触Java项目一周后对一些基本框架的理解 | 学步园

    最近一周接触了一个Java EE的B/S项目,里面用到了SSH,部分持久层用的是ibatis,接触完后觉得有收获,于是把认识到的记录下来.同时欢迎高手拍砖. 现在终于知道所谓的三层框架(视图层,业务逻 ...

  7. 搭建mysql数据库脚本语言_二十二、创建数据库脚本

    安装mysql数据库 可以看之前写过的一篇博文:点击传送 mysql命令 mysql程序使用两种不同类型的命令 特殊的MySQL命令 标准的SQL语句 mysql程序有自己的一组命令,方便控制环境以及 ...

  8. matlab中结束脚本运行_一个处理dump文件的小脚本

    各位看官可以考虑关注下我的公众号:LAMMPS 爱好者 同时安利下我们物美价廉的0基础入门培训班,有兴趣的同学可以进公众号了解~ 注:本文由深圳先进研究院梁挺博士原创 今天给大家介绍一个我在处理 la ...

  9. python做测试脚本语言_实现我自己的高级测试脚本语言

    我继承了一堆类似这样的测试脚本:// make connection on standard port (FD) ot 11 02 00 0F FD // wait for ACK in 12 ack ...

最新文章

  1. Android开发中怎样调用系统Email发送邮件(多种调用方式)
  2. 分子生物学-共价键基础
  3. 初中参观机器人博物馆的作文_【六年级作文】参观机器人博物馆
  4. 沉浸文化获星瀚资本百万元级种子轮投资,星瀚资本投资
  5. iptraf:一个实用的TCP/UDP网络监控工具
  6. combobox is not a function 问题解决
  7. window10 无法访问 Toshiba e-studio355 扫描打印一体机的机器扫描文件夹
  8. JS - Promise
  9. 【天池大数据竞赛】“数智教育”2019数据可视化竞赛亚军方案总结
  10. 【TsinsenA1339】JZPLCM(顾昱洲) 树状数组
  11. DB2活动日志占用过大
  12. Oracle11g下导入SDO_GEOMETRY类型的数据异常处理
  13. 解决阿里云OSS使用URL无法访问图片
  14. 牛批了,python也能做思维导图
  15. php 图片获得大小,PHP获取一张图片的宽度和高度大小 并裁切图片
  16. 【单片机仿真项目】模拟开关灯(proteus原理图+keil代码)
  17. 将js中Ajax设置为同步请求
  18. Unity中2D游戏多分辨率屏幕适配方案
  19. Feelings on Life
  20. png 微软ppt 透明度,教你一招永久搞定PPT导出高清图片的小技巧

热门文章

  1. 实践解析可视化开发平台FlinkSever优势
  2. CANN5.0黑科技解密 | 别眨眼,缩小隧道,让你的AI模型“身轻如燕”
  3. 发布一个网页智能解析算法库
  4. 【华为云技术分享】解密如何使用昇腾AI计算解决方案构建业务引擎
  5. 华为云BigData Pro解读: 鲲鹏云容器助力大数据破茧成蝶
  6. 应用系统迁移华为云评估
  7. 华为云3大体系化防护实践,保障金融业云上数据安全
  8. 单体应用微服务改造实践
  9. ngnix 执行php 慢,【nginx】PHP有什么办法可以排查那些脚本或方法执行慢,需要优化?...
  10. vue2.0桌面端框架_vue-element-admin