# xssdemo
**Repository Path**: chenshiyun/xssdemo
## Basic Information
- **Project Name**: xssdemo
- **Description**: springboot xss 注入的问题处理,处理xss攻击的演示demo
防止xss注入
- **Primary Language**: Java
- **License**: Apache-2.0
- **Default Branch**: master
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 10
- **Forks**: 3
- **Created**: 2020-03-01
- **Last Updated**: 2024-03-11
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
# xssdemo
#### 介绍
springboot xss 注入的问题处理,处理xss攻击的演示demo
防止xss注入,代码项目只有一个xss过滤器,直接拿走去使用就行
#### 软件架构
这个是项目中的xss攻击的一个过滤器demo,单独抽取出来提供学习使用的
对于xss注入,常见的xss注入
去这里看吧 [xss攻击介绍](https://www.jb51.net/article/92639.htm)
这里有几个用例,复制进去试试就好
"javascript:alert(#command#)"
"javascript:alert("Hello World")"
#### 安装教程
1. jdk8,idea或者eclipse,maven
2. 直接拉取代码到你本地 https://gitee.com/chenshiyun/xssdemo.git
3. 导入后直接启动
### 项目包结构

#### xss过滤器创建

#### 页面演示

#### 控制台输出

#### 使用说明
1. 直接启动项目8080端口跟路径,我懒,地址都懒得写了
2. http://localhost:8080/
#### 其他说明
EscapeUtil 里面有三个方法
```
/**
* 转义文本中的HTML字符为安全的字符
*
* @param text 被转义的文本
* @return 转义后的文本
*/
public static String escape(String text) {
return encode(text);
}
/**
* 清除所有HTML标签,但是不删除标签内的内容
*
* @param content 文本
* @return 清除标签后的文本
*/
public static String clean(String content) {
return new HTMLFilter().filter(content);
}
/**
* 还原被转义的HTML特殊字符
*
* @param content 包含转义符的HTML内容
* @return 转换后的字符串
*/
public static String unescape(String content) {
return decode(content);
}
```