论坛
BBS
空间测绘
发表
发布文章
提问答疑
搜索
您还未登录
登录后即可体验更多功能
立即登录
我的收藏
提问答疑
我要投稿
Web安全
[1864] 2020-10-15_CodeQL挖掘React应用的XSS实践
文档创建者:
s7ckTeam
浏览次数:
8
最后更新:
2025-01-16
Web安全
8 人阅读
|
0 人回复
s7ckTeam
s7ckTeam
当前离线
积分
-54
6万
主题
-6万
回帖
-54
积分
管理员
积分
-54
发消息
2020-10-15_CodeQL挖掘React应用的XSS实践
C
o
d
e
Q
L
挖
掘
R
e
a
c
t
应
用
的
X
S
S
实
践
原
创
i
m
a
g
e
m
l
t
D
a
y
1
安
全
团
队
2
0
2
0
-
1
0
-
1
5
本
文
作
者
i
m
a
g
e
m
l
t
,
本
月
发
表
1
篇
文
章
I
n
t
r
o
近
日
研
究
了
一
下
C
o
d
e
Q
L
这
个
源
代
码
分
析
工
具
,
由
于
工
作
中
接
触
到
的
R
e
a
c
t
框
架
的
w
e
b
应
用
较
多
,
往
日
人
工
审
计
源
码
挖
掘
X
S
S
通
常
是
在
W
e
b
s
t
o
r
m
中
寻
找
d
a
n
g
e
r
o
u
s
l
y
S
e
t
I
n
n
e
r
H
T
M
L
等
调
用
点
,
人
工
工
作
量
较
为
复
杂
且
可
能
遗
漏
一
些
东
西
,
所
以
便
尝
试
能
否
用
C
o
d
e
Q
L
来
辅
助
挖
掘
R
e
a
c
t
应
用
中
的
X
S
S
。
R
e
a
c
t
应
用
中
常
见
的
应
用
中
常
见
的
X
S
S
类
型
类
型
R
e
a
c
t
应
用
的
X
S
S
的
产
生
情
况
一
般
有
:
调
用
d
a
n
g
e
r
o
u
s
l
y
S
e
t
I
n
n
e
r
H
T
M
L
1
2
3
4
5
6
7
8
9
1
0
1
1
1
2
c
l
a
s
s
H
e
l
l
o
e
x
t
e
n
d
s
R
e
a
c
t
.
C
o
m
p
o
n
e
n
t
{
r
e
n
d
e
r
(
)
{
r
e
t
u
r
n
<
d
i
v
d
a
n
g
e
r
o
u
s
l
y
S
e
t
I
n
n
e
r
H
T
M
L
=
{
{
h
t
m
l
:
'
<
i
m
g
/
/
>
'
}
}
>
<
/
d
i
v
>
;
}
}
R
e
a
c
t
D
O
M
.
r
e
n
d
e
r
(
<
H
e
l
l
o
n
a
m
e
=
"
W
o
r
l
d
"
/
>
,
d
o
c
u
m
e
n
t
.
g
e
t
E
l
e
m
e
n
t
B
y
I
d
(
'
c
o
n
t
a
i
n
e
r
'
)
)
;
直
接
将
恶
意
h
t
m
l
渲
染
到
D
O
M
中
;
a
标
签
的
链
接
判
断
不
严
格
1
2
3
4
5
6
7
8
9
1
0
c
o
n
s
t
u
s
e
r
W
e
b
s
i
t
e
=
"
j
a
v
a
s
c
r
i
p
t
:
a
l
e
r
t
(
'
H
a
c
k
e
d
!
'
)
;
"
;
c
l
a
s
s
U
s
e
r
P
r
o
f
i
l
e
P
a
g
e
e
x
t
e
n
d
s
R
e
a
c
t
.
C
o
m
p
o
n
e
n
t
{
r
e
n
d
e
r
(
)
{
r
e
t
u
r
n
(
<
a
h
r
e
f
=
{
u
s
e
r
W
e
b
s
i
t
e
}
>
M
y
W
e
b
s
i
t
e
<
/
a
>
)
}
}
R
e
a
c
t
D
O
M
.
r
e
n
d
e
r
(
<
U
s
e
r
P
r
o
f
i
l
e
P
a
g
e
/
>
,
d
o
c
u
m
e
n
t
.
q
u
e
r
y
S
e
l
e
c
t
o
r
(
"
#
a
p
p
"
)
)
;
a
标
签
对
于
链
接
缺
少
过
滤
,
可
以
通
过
插
入
j
a
v
a
s
c
r
i
p
t
类
的
u
r
l
来
实
现
o
n
e
c
l
i
c
k
X
S
S
.
直
接
调
用
i
n
n
e
r
H
T
M
L
/
o
u
t
e
r
H
T
M
L
1
2
v
a
r
x
=
d
o
c
u
m
e
n
t
.
c
r
e
a
t
e
E
l
e
m
e
n
t
(
'
d
i
v
'
)
x
.
i
n
n
e
r
H
T
M
L
=
"
u
s
e
r
c
o
n
t
r
o
l
l
a
b
l
e
d
a
t
a
"
;
直
接
设
置
h
r
e
f
1
2
v
a
r
x
=
d
o
c
u
m
e
n
t
.
c
r
e
a
t
e
E
l
e
m
e
n
t
(
'
a
'
)
x
.
h
r
e
f
=
"
j
a
v
a
s
c
r
i
p
t
:
a
l
e
r
t
(
1
)
"
;
参
数
注
入
(
注
入
d
a
n
g
e
r
o
u
s
l
y
S
e
t
I
n
n
e
r
H
T
M
L
的
情
况
)
1
2
3
4
5
6
l
e
t
r
=
{
.
.
.
i
n
p
u
t
}
r
e
t
u
r
n
(
<
d
i
v
.
.
.
r
>
<
/
d
i
v
>
)
参
数
注
入
的
情
况
在
我
们
的
业
务
中
较
为
少
见
,
因
此
重
点
考
虑
前
四
种
X
S
S
情
形
的
挖
掘
方
式
。
C
o
d
e
Q
L
实
现
实
现
C
o
d
e
Q
L
一
个
重
要
功
能
便
是
能
够
跟
踪
数
据
流
,
我
们
只
需
要
编
写
继
承
于
类
的
数
据
流
设
置
类
,
定
义
好
,
,
这
几
个
方
法
即
可
,
其
中
T
a
i
n
t
T
r
a
c
k
i
n
g
:
:
C
o
n
f
i
g
u
r
a
t
i
o
n
i
s
S
o
u
r
c
e
i
s
S
i
n
k
i
s
A
d
d
i
t
i
o
n
a
l
T
a
i
n
t
S
t
e
p
i
s
S
o
u
r
c
e
表
示
数
据
流
的
源
头
,
表
示
数
据
流
流
向
目
标
,
表
示
额
外
的
连
接
数
据
流
的
判
断
。
对
于
R
e
a
c
t
应
用
而
言
S
o
u
r
c
e
点
其
实
不
是
很
容
易
确
定
,
而
且
盲
目
设
置
S
o
u
r
c
e
来
源
于
l
o
c
a
t
i
o
n
.
h
a
s
h
/
X
H
R
如
果
函
数
设
置
不
好
的
话
很
难
能
达
到
预
期
结
果
。
因
此
我
仅
仅
判
断
了
S
o
u
r
c
e
是
否
是
常
量
的
情
形
。
d
a
n
g
e
r
o
u
s
l
y
S
e
t
I
n
n
e
r
H
T
M
L
S
o
u
r
c
e
定
义
如
下
1
2
3
4
o
v
e
r
r
i
d
e
p
r
e
d
i
c
a
t
e
i
s
S
o
u
r
c
e
(
D
a
t
a
F
l
o
w
:
:
N
o
d
e
n
d
)
{
n
o
t
(
n
d
.
a
s
E
x
p
r
(
)
i
n
s
t
a
n
c
e
o
f
C
o
n
s
t
a
n
t
E
x
p
r
)
a
n
d
n
o
t
e
x
i
s
t
s
(
n
d
.
t
o
S
t
r
i
n
g
(
)
.
t
o
L
o
w
e
r
C
a
s
e
(
)
.
i
n
d
e
x
O
f
(
"
i
c
o
n
"
)
)
}
这
里
的
第
一
行
的
判
断
便
是
判
断
S
o
u
r
c
e
点
是
否
是
一
个
常
量
类
型
的
表
达
式
,
而
第
二
行
则
是
由
于
d
a
n
g
e
r
o
u
s
l
y
S
e
t
I
n
n
e
r
H
T
M
L
经
常
被
应
用
于
加
载
某
些
s
v
g
图
片
,
我
们
需
要
确
定
一
下
S
o
u
r
c
e
是
否
仅
仅
是
一
个
图
标
类
型
的
变
量
。
S
i
n
k
则
只
需
要
判
断
这
个
节
点
是
否
是
一
个
j
s
x
的
标
签
属
性
即
可
,
实
现
如
下
1
2
3
4
5
6
7
8
c
l
a
s
s
R
e
a
c
t
D
a
n
g
e
r
o
u
s
S
e
t
I
n
n
e
r
H
T
M
L
S
i
n
k
s
e
x
t
e
n
d
s
D
a
t
a
F
l
o
w
:
:
N
o
d
e
{
R
e
a
c
t
D
a
n
g
e
r
o
u
s
S
e
t
I
n
n
e
r
H
T
M
L
S
i
n
k
s
(
)
{
e
x
i
s
t
s
(
J
S
X
A
t
t
r
i
b
u
t
e
a
t
t
r
|
a
t
t
r
.
g
e
t
N
a
m
e
(
)
=
"
d
a
n
g
e
r
o
u
s
l
y
S
e
t
I
n
n
e
r
H
T
M
L
"
a
n
d
a
t
t
r
.
g
e
t
V
a
l
u
e
(
)
=
t
h
i
s
.
a
s
E
x
p
r
(
)
)
}
}
对
于
d
a
n
g
e
r
o
u
s
l
y
S
e
t
I
n
n
e
r
H
T
M
L
的
情
况
,
我
们
还
需
要
注
意
判
断
对
于
h
t
m
l
属
性
的
写
操
作
,
因
为
d
a
n
g
e
r
o
u
s
l
y
S
e
t
I
n
n
e
r
H
T
M
L
的
h
t
m
l
属
性
才
是
真
正
的
恶
意
输
入
点
,
否
则
C
o
d
e
Q
L
语
句
判
断
数
据
流
时
可
能
会
停
止
到
这
个
语
句
,
不
会
继
续
跟
进
经
过
了
哪
些
数
据
流
。
因
此
这
里
的
方
法
定
义
如
下
1
2
3
4
5
6
7
o
v
e
r
r
i
d
e
p
r
e
d
i
c
a
t
e
i
s
A
d
d
i
t
i
o
n
a
l
T
a
i
n
t
S
t
e
p
(
D
a
t
a
F
l
o
w
:
:
N
o
d
e
p
r
e
d
,
D
a
t
a
F
l
o
w
:
:
N
o
d
e
s
u
c
c
)
{
e
x
i
s
t
s
(
D
a
t
a
F
l
o
w
:
:
O
b
j
e
c
t
L
i
t
e
r
a
l
N
o
d
e
o
b
j
,
D
a
t
a
F
l
o
w
:
:
N
o
d
e
h
t
m
l
_
v
a
l
u
e
|
o
b
j
.
h
a
s
P
r
o
p
e
r
t
y
W
r
i
t
e
(
"
_
_
h
t
m
l
"
,
h
t
m
l
_
v
a
l
u
e
)
a
n
d
s
u
c
c
=
o
b
j
a
n
d
p
r
e
d
=
h
t
m
l
_
v
a
l
u
e
)
}
i
s
S
i
n
k
i
s
A
d
d
i
t
i
o
n
a
l
T
a
i
n
t
S
t
e
p
i
s
A
d
d
i
t
i
o
n
a
l
T
a
i
n
t
S
t
e
p
{
h
t
m
l
:
x
x
x
}
x
x
x
i
s
A
d
d
i
t
i
o
n
a
l
T
a
i
n
t
S
t
e
p
针
对
d
a
n
g
e
r
o
u
s
l
y
S
e
t
I
n
n
e
r
H
T
M
L
的
C
o
d
e
Q
L
语
句
最
终
如
下
:
1
2
3
4
5
6
7
8
9
1
0
1
1
1
2
1
3
1
4
1
5
1
6
1
7
1
8
1
9
2
0
2
1
2
2
2
3
2
4
2
5
2
6
2
7
2
8
2
9
3
0
3
1
3
2
3
3
3
4
3
5
3
6
3
7
3
8
3
9
4
0
4
1
i
m
p
o
r
t
j
a
v
a
s
c
r
i
p
t
c
l
a
s
s
R
e
a
c
t
D
a
n
g
e
r
o
u
s
S
e
t
I
n
n
e
r
H
T
M
L
S
i
n
k
s
e
x
t
e
n
d
s
D
a
t
a
F
l
o
w
:
:
N
o
d
e
{
R
e
a
c
t
D
a
n
g
e
r
o
u
s
S
e
t
I
n
n
e
r
H
T
M
L
S
i
n
k
s
(
)
{
e
x
i
s
t
s
(
J
S
X
A
t
t
r
i
b
u
t
e
a
t
t
r
|
a
t
t
r
.
g
e
t
N
a
m
e
(
)
=
"
d
a
n
g
e
r
o
u
s
l
y
S
e
t
I
n
n
e
r
H
T
M
L
"
a
n
d
a
t
t
r
.
g
e
t
V
a
l
u
e
(
)
=
t
h
i
s
.
a
s
E
x
p
r
(
)
)
}
}
c
l
a
s
s
R
e
a
c
t
S
e
t
I
n
n
e
r
H
t
m
l
T
r
a
c
k
e
r
e
x
t
e
n
d
s
T
a
i
n
t
T
r
a
c
k
i
n
g
:
:
C
o
n
f
i
g
u
r
a
t
i
o
n
{
R
e
a
c
t
S
e
t
I
n
n
e
r
H
t
m
l
T
r
a
c
k
e
r
(
)
{
t
h
i
s
=
"
R
e
a
c
t
S
e
t
I
n
n
e
r
H
t
m
l
T
r
a
c
k
e
r
"
}
o
v
e
r
r
i
d
e
p
r
e
d
i
c
a
t
e
i
s
S
o
u
r
c
e
(
D
a
t
a
F
l
o
w
:
:
N
o
d
e
n
d
)
{
n
o
t
(
n
d
.
a
s
E
x
p
r
(
)
i
n
s
t
a
n
c
e
o
f
C
o
n
s
t
a
n
t
E
x
p
r
)
a
n
d
n
o
t
e
x
i
s
t
s
(
n
d
.
t
o
S
t
r
i
n
g
(
)
.
t
o
L
o
w
e
r
C
a
s
e
(
)
.
i
n
d
e
x
O
f
(
"
i
c
o
n
"
)
)
}
o
v
e
r
r
i
d
e
p
r
e
d
i
c
a
t
e
i
s
S
i
n
k
(
D
a
t
a
F
l
o
w
:
:
N
o
d
e
n
d
)
{
n
d
i
n
s
t
a
n
c
e
o
f
R
e
a
c
t
D
a
n
g
e
r
o
u
s
S
e
t
I
n
n
e
r
H
T
M
L
S
i
n
k
s
}
o
v
e
r
r
i
d
e
p
r
e
d
i
c
a
t
e
i
s
A
d
d
i
t
i
o
n
a
l
T
a
i
n
t
S
t
e
p
(
D
a
t
a
F
l
o
w
:
:
N
o
d
e
p
r
e
d
,
D
a
t
a
F
l
o
w
:
:
N
o
d
e
s
u
c
c
)
{
e
x
i
s
t
s
(
D
a
t
a
F
l
o
w
:
:
O
b
j
e
c
t
L
i
t
e
r
a
l
N
o
d
e
o
b
j
,
D
a
t
a
F
l
o
w
:
:
N
o
d
e
h
t
m
l
_
v
a
l
u
e
|
o
b
j
.
h
a
s
P
r
o
p
e
r
t
y
W
r
i
t
e
(
"
_
_
h
t
m
l
"
,
h
t
m
l
_
v
a
l
u
e
)
a
n
d
s
u
c
c
=
o
b
j
a
n
d
p
r
e
d
=
h
t
m
l
_
v
a
l
u
e
)
}
}
f
r
o
m
R
e
a
c
t
S
e
t
I
n
n
e
r
H
t
m
l
T
r
a
c
k
e
r
p
t
,
D
a
t
a
F
l
o
w
:
:
N
o
d
e
s
o
u
r
c
e
,
D
a
t
a
F
l
o
w
:
:
N
o
d
e
s
i
n
k
w
h
e
r
e
p
t
.
h
a
s
F
l
o
w
(
s
o
u
r
c
e
,
s
i
n
k
)
s
e
l
e
c
t
s
o
u
r
c
e
,
s
i
n
k
i
s
A
d
d
i
t
i
o
n
a
l
T
a
i
n
t
S
t
e
p
方
法
也
可
以
继
续
优
化
,
加
入
是
否
经
过
了
D
o
m
p
u
r
i
f
y
过
滤
、
是
否
经
过
编
码
转
换
函
数
等
。
a
标
签
判
断
不
严
格
的
情
况
标
签
判
断
不
严
格
的
情
况
只
需
要
对
上
面
的
例
子
做
更
改
即
可
,
可
以
只
修
改
S
i
n
k
将
属
性
改
为
h
r
e
f
,
去
掉
方
法
,
这
里
的
实
现
如
下
i
s
A
d
d
i
t
i
o
n
a
l
T
a
i
n
t
S
t
e
p
1
2
3
4
5
6
7
8
9
1
0
1
1
1
2
1
3
1
4
1
5
1
6
1
7
1
8
1
9
2
0
2
1
2
2
2
3
2
4
2
5
2
6
2
7
2
8
2
9
3
0
3
1
3
2
3
3
3
4
i
m
p
o
r
t
j
a
v
a
s
c
r
i
p
t
c
l
a
s
s
R
e
a
c
t
S
e
t
H
r
e
f
S
i
n
k
s
e
x
t
e
n
d
s
D
a
t
a
F
l
o
w
:
:
N
o
d
e
{
R
e
a
c
t
S
e
t
H
r
e
f
S
i
n
k
s
(
)
{
e
x
i
s
t
s
(
J
S
X
A
t
t
r
i
b
u
t
e
a
t
t
r
|
a
t
t
r
.
g
e
t
N
a
m
e
(
)
=
"
h
r
e
f
"
a
n
d
a
t
t
r
.
g
e
t
V
a
l
u
e
(
)
=
t
h
i
s
.
a
s
E
x
p
r
(
)
)
}
}
c
l
a
s
s
R
e
a
c
t
S
e
t
H
r
e
f
T
r
a
c
k
e
r
e
x
t
e
n
d
s
T
a
i
n
t
T
r
a
c
k
i
n
g
:
:
C
o
n
f
i
g
u
r
a
t
i
o
n
{
R
e
a
c
t
S
e
t
H
r
e
f
T
r
a
c
k
e
r
(
)
{
t
h
i
s
=
"
R
e
a
c
t
S
e
t
H
r
e
f
T
r
a
c
k
e
r
"
}
o
v
e
r
r
i
d
e
p
r
e
d
i
c
a
t
e
i
s
S
o
u
r
c
e
(
D
a
t
a
F
l
o
w
:
:
N
o
d
e
n
d
)
{
e
x
i
s
t
s
(
|
n
o
t
(
n
d
.
a
s
E
x
p
r
(
)
i
n
s
t
a
n
c
e
o
f
C
o
n
s
t
a
n
t
E
x
p
r
)
a
n
d
n
o
t
e
x
i
s
t
s
(
n
d
.
t
o
S
t
r
i
n
g
(
)
.
t
o
L
o
w
e
r
C
a
s
e
(
)
.
i
n
d
e
x
O
f
(
"
i
c
o
n
"
)
)
)
}
o
v
e
r
r
i
d
e
p
r
e
d
i
c
a
t
e
i
s
S
i
n
k
(
D
a
t
a
F
l
o
w
:
:
N
o
d
e
n
d
)
{
n
d
i
n
s
t
a
n
c
e
o
f
R
e
a
c
t
S
e
t
H
r
e
f
S
i
n
k
s
}
}
f
r
o
m
R
e
a
c
t
S
e
t
H
r
e
f
T
r
a
c
k
e
r
p
t
,
D
a
t
a
F
l
o
w
:
:
N
o
d
e
s
o
u
r
c
e
,
D
a
t
a
F
l
o
w
:
:
N
o
d
e
s
i
n
k
w
h
e
r
e
p
t
.
h
a
s
F
l
o
w
(
s
o
u
r
c
e
,
s
i
n
k
)
s
e
l
e
c
t
s
o
u
r
c
e
,
s
i
n
k
i
n
n
e
r
H
T
M
L
/
o
u
t
e
r
H
T
M
L
/
h
r
e
f
S
i
n
k
只
需
要
判
断
是
存
在
P
r
o
p
W
r
i
t
e
事
件
,
写
入
的
属
性
为
i
n
n
e
r
H
T
M
L
/
o
u
t
e
r
H
T
M
L
/
h
r
e
f
即
可
1
2
3
4
5
6
7
8
9
1
0
1
1
1
2
1
3
1
4
1
5
1
6
1
7
1
8
1
9
2
0
2
1
2
2
2
3
2
4
2
5
2
6
2
7
2
8
2
9
3
0
i
m
p
o
r
t
j
a
v
a
s
c
r
i
p
t
c
l
a
s
s
I
n
n
e
r
H
T
M
L
S
i
n
k
s
e
x
t
e
n
d
s
D
a
t
a
F
l
o
w
:
:
N
o
d
e
{
I
n
n
e
r
H
T
M
L
S
i
n
k
s
(
)
{
e
x
i
s
t
s
(
D
a
t
a
F
l
o
w
:
:
P
r
o
p
W
r
i
t
e
p
w
|
p
w
.
g
e
t
P
r
o
p
e
r
t
y
N
a
m
e
(
)
.
r
e
g
e
x
p
M
a
t
c
h
(
"
(
i
n
n
e
r
H
T
M
L
|
o
u
t
e
r
H
T
M
L
)
"
)
a
n
d
p
w
.
g
e
t
R
h
s
(
)
=
t
h
i
s
)
}
}
c
l
a
s
s
I
n
n
e
r
H
t
m
l
T
r
a
c
k
e
r
e
x
t
e
n
d
s
T
a
i
n
t
T
r
a
c
k
i
n
g
:
:
C
o
n
f
i
g
u
r
a
t
i
o
n
{
I
n
n
e
r
H
t
m
l
T
r
a
c
k
e
r
(
)
{
t
h
i
s
=
"
I
n
n
e
r
H
t
m
l
T
r
a
c
k
e
r
"
}
o
v
e
r
r
i
d
e
p
r
e
d
i
c
a
t
e
i
s
S
o
u
r
c
e
(
D
a
t
a
F
l
o
w
:
:
N
o
d
e
n
d
)
{
n
o
t
n
d
.
a
s
E
x
p
r
(
)
i
n
s
t
a
n
c
e
o
f
C
o
n
s
t
a
n
t
E
x
p
r
}
o
v
e
r
r
i
d
e
p
r
e
d
i
c
a
t
e
i
s
S
i
n
k
(
D
a
t
a
F
l
o
w
:
:
N
o
d
e
n
d
)
{
n
d
i
n
s
t
a
n
c
e
o
f
I
n
n
e
r
H
T
M
L
S
i
n
k
s
}
}
f
r
o
m
I
n
n
e
r
H
t
m
l
T
r
a
c
k
e
r
p
t
,
D
a
t
a
F
l
o
w
:
:
N
o
d
e
s
o
u
r
c
e
,
D
a
t
a
F
l
o
w
:
:
N
o
d
e
s
i
n
k
w
h
e
r
e
p
t
.
h
a
s
F
l
o
w
(
s
o
u
r
c
e
,
s
i
n
k
)
s
e
l
e
c
t
s
o
u
r
c
e
,
s
i
n
k
一
个
针
对
一
个
针
对
D
O
M
X
S
S
的
判
断
例
子
的
判
断
例
子
这
里
用
一
个
针
对
D
O
M
X
S
S
的
判
断
来
说
明
一
下
怎
样
充
分
利
用
D
a
t
a
F
l
o
w
功
能
的
,
,
函
数
来
追
踪
一
个
比
较
完
整
的
数
据
流
。
有
网
友
发
来
一
个
邮
件
请
求
帮
忙
针
对
以
下
的
D
O
M
X
S
S
例
子
编
写
C
o
d
e
Q
L
查
询
:
i
s
S
o
u
r
c
e
i
s
S
i
n
k
i
s
A
d
d
i
t
i
o
n
a
l
T
a
i
n
t
S
t
e
p
1
2
3
4
5
6
7
8
9
1
0
1
1
1
2
1
3
1
4
1
5
1
6
1
7
1
8
1
9
2
0
2
1
2
2
2
3
2
4
2
5
2
6
2
7
<
!
D
O
C
T
Y
P
E
h
t
m
l
>
<
h
t
m
l
>
<
h
e
a
d
>
<
m
e
t
a
c
h
a
r
s
e
t
=
"
u
t
f
-
8
"
>
<
t
i
t
l
e
>
D
o
r
a
B
o
x
-
D
O
M
_
X
S
S
<
/
t
i
t
l
e
>
<
/
h
e
a
d
>
<
b
o
d
y
>
<
f
o
r
m
a
c
t
i
o
n
=
'
'
m
e
t
h
o
d
=
'
G
E
T
'
>
n
a
m
e
:
<
i
n
p
u
t
t
y
p
e
=
'
t
e
x
t
'
n
a
m
e
=
'
n
a
m
e
'
i
d
=
'
f
o
r
m
1
'
>
<
i
n
p
u
t
t
y
p
e
=
'
s
u
b
m
i
t
'
n
a
m
e
=
'
s
u
b
m
i
t
'
v
a
l
u
e
=
'
s
u
b
m
i
t
'
>
<
/
f
o
r
m
>
<
h
r
>
<
s
c
r
i
p
t
t
y
p
e
=
'
t
e
x
t
/
j
a
v
a
s
c
r
i
p
t
'
>
f
u
n
c
t
i
o
n
g
e
t
U
R
L
V
a
l
u
e
(
n
a
m
e
)
{
v
a
r
r
e
g
=
n
e
w
R
e
g
E
x
p
(
'
(
^
|
&
)
'
+
n
a
m
e
+
'
=
(
[
^
&
]
*
)
(
&
|
$
)
'
)
;
v
a
r
r
=
w
i
n
d
o
w
.
l
o
c
a
t
i
o
n
.
s
e
a
r
c
h
.
s
u
b
s
t
r
(
1
)
.
m
a
t
c
h
(
r
e
g
)
;
i
f
(
r
!
=
n
u
l
l
)
{
r
e
t
u
r
n
u
n
e
s
c
a
p
e
(
r
[
2
]
)
;
}
e
l
s
e
{
r
e
t
u
r
n
"
"
;
}
}
d
o
c
u
m
e
n
t
.
w
r
i
t
e
(
g
e
t
U
R
L
V
a
l
u
e
(
'
n
a
m
e
'
)
)
;
<
/
s
c
r
i
p
t
>
<
/
b
o
d
y
>
<
/
h
t
m
l
>
这
里
的
X
S
S
例
子
是
从
l
o
c
a
t
i
o
n
.
s
e
a
r
c
h
中
取
出
内
容
来
输
出
到
网
页
上
。
针
对
来
自
u
r
l
的
D
O
M
X
S
S
,
我
们
可
以
按
如
下
的
方
式
定
义
S
o
u
r
c
e
:
1
2
3
4
5
6
7
8
9
1
0
1
1
1
2
1
3
1
4
c
l
a
s
s
L
o
c
a
t
i
o
n
H
a
s
h
S
o
u
r
c
e
e
x
t
e
n
d
s
D
a
t
a
F
l
o
w
:
:
N
o
d
e
{
L
o
c
a
t
i
o
n
H
a
s
h
S
o
u
r
c
e
(
)
{
e
x
i
s
t
s
(
C
a
l
l
E
x
p
r
d
o
l
l
a
r
C
a
l
l
,
P
r
o
p
A
c
c
e
s
s
p
r
|
t
h
i
s
.
a
s
E
x
p
r
(
)
i
n
s
t
a
n
c
e
o
f
C
a
l
l
E
x
p
r
a
n
d
(
d
o
l
l
a
r
C
a
l
l
.
g
e
t
C
a
l
l
e
e
N
a
m
e
(
)
=
"
s
p
l
i
t
"
o
r
d
o
l
l
a
r
C
a
l
l
.
g
e
t
C
a
l
l
e
e
N
a
m
e
(
)
=
"
s
u
b
s
t
r
"
o
r
d
o
l
l
a
r
C
a
l
l
.
g
e
t
C
a
l
l
e
e
N
a
m
e
(
)
=
"
s
u
b
s
t
r
i
n
g
"
)
a
n
d
d
o
l
l
a
r
C
a
l
l
.
g
e
t
R
e
c
e
i
v
e
r
(
)
=
p
r
a
n
d
(
p
r
.
g
e
t
B
a
s
e
(
)
.
t
o
S
t
r
i
n
g
(
)
=
"
w
i
n
d
o
w
.
l
o
c
a
t
i
o
n
"
o
r
p
r
.
g
e
t
B
a
s
e
(
)
.
t
o
S
t
r
i
n
g
(
)
=
"
l
o
c
a
t
i
o
n
"
)
a
n
d
t
h
i
s
.
a
s
E
x
p
r
(
)
=
d
o
l
l
a
r
C
a
l
l
)
}
}
这
里
主
要
判
断
是
否
存
在
函
数
调
用
,
其
中
调
用
了
s
p
l
i
t
/
s
u
b
s
t
r
/
s
u
b
s
t
r
i
n
g
等
方
法
,
且
这
些
方
法
的
R
e
c
e
i
v
e
r
为
w
i
n
d
o
w
.
l
o
c
a
t
i
o
n
/
l
o
c
a
t
i
o
n
.
S
i
n
k
点
比
较
简
单
,
直
接
参
考
上
面
R
e
a
c
t
应
用
X
S
S
的
判
断
即
可
,
这
里
定
义
了
i
n
n
e
r
H
T
M
L
和
d
o
c
u
m
e
n
t
.
w
r
i
t
e
两
种
类
型
1
2
3
4
5
6
7
8
9
1
0
1
1
1
2
1
3
1
4
1
5
1
6
1
7
1
8
1
9
c
l
a
s
s
D
o
c
u
m
e
n
t
W
r
i
t
e
S
i
n
k
s
e
x
t
e
n
d
s
D
a
t
a
F
l
o
w
:
:
N
o
d
e
{
D
o
c
u
m
e
n
t
W
r
i
t
e
S
i
n
k
s
(
)
{
e
x
i
s
t
s
(
C
a
l
l
E
x
p
r
c
a
l
l
|
c
a
l
l
.
g
e
t
C
a
l
l
e
e
N
a
m
e
(
)
=
"
w
r
i
t
e
"
a
n
d
c
a
l
l
.
g
e
t
R
e
c
e
i
v
e
r
(
)
.
t
o
S
t
r
i
n
g
(
)
=
"
d
o
c
u
m
e
n
t
"
a
n
d
t
h
i
s
.
a
s
E
x
p
r
(
)
=
c
a
l
l
.
g
e
t
A
r
g
u
m
e
n
t
(
0
)
)
}
}
c
l
a
s
s
I
n
n
e
r
H
T
M
L
S
i
n
k
s
e
x
t
e
n
d
s
D
a
t
a
F
l
o
w
:
:
N
o
d
e
{
I
n
n
e
r
H
T
M
L
S
i
n
k
s
(
)
{
e
x
i
s
t
s
(
D
a
t
a
F
l
o
w
:
:
P
r
o
p
W
r
i
t
e
p
w
|
p
w
.
g
e
t
P
r
o
p
e
r
t
y
N
a
m
e
(
)
.
r
e
g
e
x
p
M
a
t
c
h
(
"
(
i
n
n
e
r
H
T
M
L
|
o
u
t
e
r
H
T
M
L
)
"
)
a
n
d
p
w
.
g
e
t
R
h
s
(
)
=
t
h
i
s
)
}
}
而
为
了
能
够
保
证
经
过
u
n
e
s
c
a
p
e
/
d
e
c
o
d
e
U
R
I
等
编
码
类
函
数
数
据
流
仍
然
不
断
开
,
需
要
编
写
函
数
来
添
加
额
外
的
数
据
流
判
断
1
2
3
4
5
6
7
8
9
1
0
o
v
e
r
r
i
d
e
p
r
e
d
i
c
a
t
e
i
s
A
d
d
i
t
i
o
n
a
l
T
a
i
n
t
S
t
e
p
(
D
a
t
a
F
l
o
w
:
:
N
o
d
e
p
r
e
d
,
D
a
t
a
F
l
o
w
:
:
N
o
d
e
s
u
c
c
)
{
e
x
i
s
t
s
(
C
a
l
l
E
x
p
r
c
a
l
l
|
(
c
a
l
l
.
g
e
t
C
a
l
l
e
e
N
a
m
e
(
)
=
"
u
n
e
s
c
a
p
e
"
o
r
c
a
l
l
.
g
e
t
C
a
l
l
e
e
N
a
m
e
(
)
=
"
a
t
o
b
"
o
r
c
a
l
l
.
g
e
t
C
a
l
l
e
e
N
a
m
e
(
)
=
"
d
e
c
o
d
e
U
R
I
"
o
r
c
a
l
l
.
g
e
t
C
a
l
l
e
e
N
a
m
e
(
)
=
"
d
e
c
o
d
e
U
R
I
C
o
m
p
o
n
e
n
t
"
)
a
n
d
s
u
c
c
.
a
s
E
x
p
r
(
)
=
c
a
l
l
a
n
d
p
r
e
d
.
a
s
E
x
p
r
(
)
=
c
a
l
l
.
g
e
t
A
r
g
u
m
e
n
t
(
0
)
)
}
这
里
判
断
条
件
只
判
断
了
是
否
调
用
了
u
n
e
s
c
a
p
e
/
a
t
o
b
/
d
e
c
o
d
e
U
R
I
/
d
e
c
o
d
e
U
R
I
C
o
m
p
o
n
e
n
t
等
方
法
,
如
果
调
用
则
方
法
的
参
数
为
前
驱
,
方
法
的
结
果
为
后
继
,
从
而
保
证
数
据
流
流
经
这
些
函
数
仍
然
能
够
继
续
追
踪
。
综
上
,
针
对
这
种
D
O
M
X
S
S
的
C
o
d
e
Q
L
语
句
实
现
如
下
:
1
2
3
4
5
6
7
8
9
1
0
1
1
1
2
1
3
1
4
1
5
1
6
1
7
1
8
i
m
p
o
r
t
j
a
v
a
s
c
r
i
p
t
c
l
a
s
s
D
o
c
u
m
e
n
t
W
r
i
t
e
S
i
n
k
s
e
x
t
e
n
d
s
D
a
t
a
F
l
o
w
:
:
N
o
d
e
{
D
o
c
u
m
e
n
t
W
r
i
t
e
S
i
n
k
s
(
)
{
e
x
i
s
t
s
(
C
a
l
l
E
x
p
r
c
a
l
l
|
c
a
l
l
.
g
e
t
C
a
l
l
e
e
N
a
m
e
(
)
=
"
w
r
i
t
e
"
a
n
d
c
a
l
l
.
g
e
t
R
e
c
e
i
v
e
r
(
)
.
t
o
S
t
r
i
n
g
(
)
=
"
d
o
c
u
m
e
n
t
"
a
n
d
t
h
i
s
.
a
s
E
x
p
r
(
)
=
c
a
l
l
.
g
e
t
A
r
g
u
m
e
n
t
(
0
)
)
}
}
c
l
a
s
s
I
n
n
e
r
H
T
M
L
S
i
n
k
s
e
x
t
e
n
d
s
D
a
t
a
F
l
o
w
:
:
N
o
d
e
{
I
n
n
e
r
H
T
M
L
S
i
n
k
s
(
)
{
e
x
i
s
t
s
(
D
a
t
a
F
l
o
w
:
:
P
r
o
p
W
r
i
t
e
p
w
|
p
w
.
g
e
t
P
r
o
p
e
r
t
y
N
a
m
e
(
)
.
r
e
g
e
x
p
M
a
t
c
h
(
"
(
i
n
n
e
r
H
T
M
L
|
o
u
t
e
r
H
T
M
L
)
"
)
a
n
d
p
w
.
g
e
t
R
h
s
(
)
=
t
h
i
s
i
s
A
d
d
i
t
i
o
n
a
l
T
a
i
n
t
S
t
e
p
1
8
1
9
2
0
2
1
2
2
2
3
2
4
2
5
2
6
2
7
2
8
2
9
3
0
3
1
3
2
3
3
3
4
3
5
3
6
3
7
3
8
3
9
4
0
4
1
4
2
4
3
4
4
4
5
4
6
4
7
4
8
4
9
5
0
5
1
5
2
5
3
5
4
5
5
5
6
5
7
5
8
5
9
6
0
6
1
6
2
6
3
6
4
6
5
6
6
a
n
d
p
w
.
g
e
t
R
h
s
(
)
=
t
h
i
s
)
}
}
c
l
a
s
s
L
o
c
a
t
i
o
n
H
a
s
h
S
o
u
r
c
e
e
x
t
e
n
d
s
D
a
t
a
F
l
o
w
:
:
N
o
d
e
{
L
o
c
a
t
i
o
n
H
a
s
h
S
o
u
r
c
e
(
)
{
e
x
i
s
t
s
(
C
a
l
l
E
x
p
r
d
o
l
l
a
r
C
a
l
l
,
P
r
o
p
A
c
c
e
s
s
p
r
|
t
h
i
s
.
a
s
E
x
p
r
(
)
i
n
s
t
a
n
c
e
o
f
C
a
l
l
E
x
p
r
a
n
d
(
d
o
l
l
a
r
C
a
l
l
.
g
e
t
C
a
l
l
e
e
N
a
m
e
(
)
=
"
s
p
l
i
t
"
o
r
d
o
l
l
a
r
C
a
l
l
.
g
e
t
C
a
l
l
e
e
N
a
m
e
(
)
=
"
s
u
b
s
t
r
"
o
r
d
o
l
l
a
r
C
a
l
l
.
g
e
t
C
a
l
l
e
e
N
a
m
e
(
)
=
"
s
u
b
s
t
r
i
n
g
"
)
a
n
d
d
o
l
l
a
r
C
a
l
l
.
g
e
t
R
e
c
e
i
v
e
r
(
)
=
p
r
a
n
d
(
p
r
.
g
e
t
B
a
s
e
(
)
.
t
o
S
t
r
i
n
g
(
)
=
"
w
i
n
d
o
w
.
l
o
c
a
t
i
o
n
"
o
r
p
r
.
g
e
t
B
a
s
e
(
)
.
t
o
S
t
r
i
n
g
(
)
=
"
l
o
c
a
t
i
o
n
"
)
a
n
d
t
h
i
s
.
a
s
E
x
p
r
(
)
=
d
o
l
l
a
r
C
a
l
l
)
}
}
c
l
a
s
s
D
o
c
u
m
e
n
t
W
r
i
t
e
T
r
a
c
k
e
r
e
x
t
e
n
d
s
T
a
i
n
t
T
r
a
c
k
i
n
g
:
:
C
o
n
f
i
g
u
r
a
t
i
o
n
{
D
o
c
u
m
e
n
t
W
r
i
t
e
T
r
a
c
k
e
r
(
)
{
t
h
i
s
=
"
D
o
c
u
m
e
n
t
W
r
i
t
e
T
r
a
c
k
e
r
"
}
o
v
e
r
r
i
d
e
p
r
e
d
i
c
a
t
e
i
s
S
o
u
r
c
e
(
D
a
t
a
F
l
o
w
:
:
N
o
d
e
n
d
)
{
n
d
i
n
s
t
a
n
c
e
o
f
L
o
c
a
t
i
o
n
H
a
s
h
S
o
u
r
c
e
}
o
v
e
r
r
i
d
e
p
r
e
d
i
c
a
t
e
i
s
S
i
n
k
(
D
a
t
a
F
l
o
w
:
:
N
o
d
e
n
d
)
{
n
d
i
n
s
t
a
n
c
e
o
f
D
o
c
u
m
e
n
t
W
r
i
t
e
S
i
n
k
s
o
r
n
d
i
n
s
t
a
n
c
e
o
f
I
n
n
e
r
H
T
M
L
S
i
n
k
s
}
o
v
e
r
r
i
d
e
p
r
e
d
i
c
a
t
e
i
s
A
d
d
i
t
i
o
n
a
l
T
a
i
n
t
S
t
e
p
(
D
a
t
a
F
l
o
w
:
:
N
o
d
e
p
r
e
d
,
D
a
t
a
F
l
o
w
:
:
N
o
d
e
s
u
c
c
)
{
e
x
i
s
t
s
(
C
a
l
l
E
x
p
r
c
a
l
l
|
(
c
a
l
l
.
g
e
t
C
a
l
l
e
e
N
a
m
e
(
)
=
"
u
n
e
s
c
a
p
e
"
o
r
c
a
l
l
.
g
e
t
C
a
l
l
e
e
N
a
m
e
(
)
=
"
a
t
o
b
"
o
r
c
a
l
l
.
g
e
t
C
a
l
l
e
e
N
a
m
e
(
)
=
"
d
e
c
o
d
e
U
R
I
"
o
r
c
a
l
l
.
g
e
t
C
a
l
l
e
e
N
a
m
e
(
)
=
"
d
e
c
o
d
e
U
R
I
C
o
m
p
o
n
e
n
t
"
)
a
n
d
s
u
c
c
.
a
s
E
x
p
r
(
)
=
c
a
l
l
a
n
d
p
r
e
d
.
a
s
E
x
p
r
(
)
=
c
a
l
l
.
g
e
t
A
r
g
u
m
e
n
t
(
0
)
)
}
}
f
r
o
m
D
o
c
u
m
e
n
t
W
r
i
t
e
T
r
a
c
k
e
r
p
t
,
D
a
t
a
F
l
o
w
:
:
N
o
d
e
s
o
u
r
c
e
,
D
a
t
a
F
l
o
w
:
:
N
o
d
e
s
i
n
k
w
h
e
r
e
p
t
.
h
a
s
F
l
o
w
(
s
o
u
r
c
e
,
s
i
n
k
)
s
e
l
e
c
t
s
o
u
r
c
e
,
s
i
n
k
参
考
资
料
参
考
资
料
h
t
t
p
s
:
/
/
h
e
l
p
.
s
e
m
m
l
e
.
c
o
m
/
Q
L
/
l
e
a
r
n
-
q
l
/
j
a
v
a
s
c
r
i
p
t
/
q
l
-
f
o
r
-
j
a
v
a
s
c
r
i
p
t
.
h
t
m
l
h
t
t
p
s
:
/
/
m
s
r
c
-
b
l
o
g
.
m
i
c
r
o
s
o
f
t
.
c
o
m
/
2
0
1
9
/
1
1
/
0
6
/
v
u
l
n
e
r
a
b
i
l
i
t
y
-
h
u
n
t
i
n
g
-
w
i
t
h
-
s
e
m
m
l
e
-
q
l
-
d
o
m
-
x
s
s
/
h
t
t
p
s
:
/
/
m
s
r
c
-
b
l
o
g
.
m
i
c
r
o
s
o
f
t
.
c
o
m
/
2
0
1
9
/
0
3
/
1
9
/
v
u
l
n
e
r
a
b
i
l
i
t
y
-
h
u
n
t
i
n
g
-
w
i
t
h
-
s
e
m
m
l
e
-
q
l
-
p
a
r
t
-
2
/
感
谢
您
的
阅
读
,
如
果
觉
得
文
章
还
不
错
可
以
点
点
“
在
看
”
或
分
享
到
朋
友
圈
,
接
下
来
我
们
会
发
布
更
多
的
技
术
分
享
文
章
,
敬
请
期
待
!
回复
举报
上一个主题
下一个主题
高级模式
B
Color
Image
Link
Quote
Code
Smilies
您需要登录后才可以回帖
登录
|
立即注册
本版积分规则
发表回复
!disable!!post_parseurl!
使用Markdown编辑器编辑
使用富文本编辑器编辑
回帖后跳转到最后一页