Skip to content

Commit 63773c9

Browse files
committed
完善xss过滤表达式,避免出现data:
1 parent 6b75fe6 commit 63773c9

File tree

2 files changed

+2
-1
lines changed

2 files changed

+2
-1
lines changed

common/src/main/java/com/jeesite/common/codec/EncodeUtils.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -191,7 +191,7 @@ public static String decodeUrl2(String part) {
191191
// 预编译XSS过滤正则表达式
192192
private static final List<Pattern> xssPatterns = ListUtils.newArrayList(
193193
Pattern.compile("(<\\s*(script|link|style|iframe)([\\s\\S]*?)(>|<\\/\\s*\\1\\s*>))|(</\\s*(script|link|style|iframe)\\s*>)", Pattern.CASE_INSENSITIVE),
194-
Pattern.compile("\\s*(href|src)\\s*=\\s*(\"\\s*(javascript|vbscript):[^\"]+\"|'\\s*(javascript|vbscript):[^']+'|(javascript|vbscript):[^\\s]+)\\s*(?=>)", Pattern.CASE_INSENSITIVE),
194+
Pattern.compile("\\s*(href|src)\\s*=\\s*(\"\\s*(javascript|vbscript|data):[^\"]+\"|'\\s*(javascript|vbscript|data):[^']+'|(javascript|vbscript|data):[^\\s]+)\\s*(?=>)", Pattern.CASE_INSENSITIVE),
195195
Pattern.compile("\\s*/?\\s*on[a-zA-Z]+\\s*=\\s*(['\"]?)(.*?)\\1(?=\\s|>|/>)", Pattern.CASE_INSENSITIVE),
196196
Pattern.compile("(eval\\((.*?)\\)|expression\\((.*?)\\))", Pattern.CASE_INSENSITIVE),
197197
Pattern.compile("^(javascript:|vbscript:)", Pattern.CASE_INSENSITIVE)

common/src/test/java/com/jeesite/test/codec/EncodeUtilsTest.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -41,6 +41,7 @@ public static void main(String[] args) {
4141
xssFilter(i++, "<!--HTML-->你好 ?abc=def&hello=123&world={\"a\":1}我还在。");
4242
xssFilter(i++, "<!--HTML-->你好 ?abc=def&hello=123&world={'a':1}我还在。");
4343
xssFilter(i++, "<!--HTML-->\"><svg/ONLOAD=confirm(3) />");
44+
xssFilter(i++, "<!--HTML-->XSS<embed src=\"data:text/html;base64,PHNjcmlwdD5hbGVydCg5KTwvc2NyaXB0Pgo=\">");
4445
sqlFilter(i++, "你好 select * from xxx where abc=def and 1=1我还在。", "common");
4546
sqlFilter(i++, "你好 insert into xxx values(1,2,3,4,5)我还在。", "common");
4647
sqlFilter(i++, "你好 delete from xxx我还在。", "common");

0 commit comments

Comments
 (0)