论坛
BBS
空间测绘
发表
发布文章
提问答疑
搜索
您还未登录
登录后即可体验更多功能
立即登录
我的收藏
提问答疑
我要投稿
代码审计
[20708] 2017-04-16_Java代码审计基础(一)
文档创建者:
s7ckTeam
浏览次数:
1
最后更新:
2025-01-18
代码审计
1 人阅读
|
0 人回复
s7ckTeam
s7ckTeam
当前在线
积分
-56
6万
主题
-6万
回帖
-56
积分
管理员
积分
-56
发消息
2017-04-16_Java代码审计基础(一)
J
a
v
a
代
码
审
计
基
础
(
一
)
L
e
m
o
n
S
e
c
2
0
1
7
-
0
4
-
1
6
S
Q
L
注
入
S
Q
L
注
入
攻
击
指
的
是
通
过
构
建
特
殊
的
输
入
作
为
参
数
传
入
W
e
b
应
用
程
序
,
而
这
些
输
入
大
都
是
S
Q
L
语
法
里
的
一
些
组
合
,
通
过
执
行
S
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
<
%
@
p
a
g
e
i
m
p
o
r
t
=
"
j
a
v
a
.
s
q
l
.
*
"
%
>
<
%
@
p
a
g
e
l
a
n
g
u
a
g
e
=
"
j
a
v
a
"
c
o
n
t
e
n
t
T
y
p
e
=
"
t
e
x
t
/
h
t
m
l
;
c
h
a
r
s
e
t
=
I
S
O
-
8
8
5
9
-
1
"
p
a
g
e
E
n
c
o
d
i
n
g
=
"
I
S
O
-
8
8
5
9
-
1
"
%
>
<
!
D
O
C
T
Y
P
E
h
t
m
l
P
U
B
L
I
C
"
-
/
/
W
3
C
/
/
D
T
D
H
T
M
L
4
.
0
1
T
r
a
n
s
i
t
i
o
n
a
l
/
/
E
N
"
"
h
t
t
p
:
/
/
w
w
w
.
w
3
.
o
r
g
/
T
R
/
h
t
m
l
4
/
l
o
o
s
e
.
d
t
d
"
>
<
h
t
m
l
>
<
h
e
a
d
>
<
m
e
t
a
h
t
t
p
-
e
q
u
i
v
=
"
C
o
n
t
e
n
t
-
T
y
p
e
"
c
o
n
t
e
n
t
=
"
t
e
x
t
/
h
t
m
l
;
c
h
a
r
s
e
t
=
I
S
O
-
8
8
5
9
-
1
"
>
<
t
i
t
l
e
>
<
/
t
i
t
l
e
>
<
/
h
e
a
d
>
<
b
o
d
y
>
<
%
S
t
r
i
n
g
u
s
e
r
=
r
e
q
u
e
s
t
.
g
e
t
P
a
r
a
m
e
t
e
r
(
"
u
s
e
r
"
)
;
S
t
r
i
n
g
p
a
s
s
=
r
e
q
u
e
s
t
.
g
e
t
P
a
r
a
m
e
t
e
r
(
"
p
a
s
s
"
)
;
C
l
a
s
s
.
f
o
r
N
a
m
e
(
"
c
o
m
.
m
y
s
q
l
.
j
d
b
c
.
D
r
i
v
e
r
"
)
;
C
o
n
n
e
c
t
i
o
n
c
o
n
=
(
C
o
n
n
e
c
t
i
o
n
)
D
r
i
v
e
r
M
a
n
a
g
e
r
.
g
e
t
C
o
n
n
e
c
t
i
o
n
(
"
j
d
b
c
:
m
y
s
q
l
:
/
/
l
o
c
a
l
h
o
s
t
:
3
3
0
6
/
m
y
d
b
"
,
"
r
o
o
t
"
,
"
"
)
;
S
t
a
t
e
m
e
n
t
s
t
=
c
o
n
.
c
r
e
a
t
e
S
t
a
t
e
m
e
n
t
(
)
;
R
e
s
u
l
t
S
e
t
r
s
=
s
t
.
e
x
e
c
u
t
e
Q
u
e
r
y
(
"
s
e
l
e
c
t
*
f
r
o
m
u
s
e
r
s
w
h
e
r
e
u
s
e
r
n
a
m
e
=
'
"
+
u
s
e
r
+
"
'
a
n
d
p
a
s
s
w
o
r
d
=
'
"
+
p
a
s
s
+
"
'
l
i
m
i
t
0
,
1
"
)
;
i
f
在
上
述
代
码
中
,
开
发
者
使
用
声
明
的
类
来
创
建
一
个
S
Q
L
语
句
,
并
执
行
它
来
获
取
一
个
有
效
用
户
的
用
户
名
和
密
码
。
由
于
使
用
拼
接
S
Q
L
语
句
,
并
且
没
有
做
任
何
防
注
入
的
手
段
,
导
致
存
在
S
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
i
f
(
r
s
.
n
e
x
t
(
)
)
{
o
u
t
.
p
r
i
n
t
l
n
(
"
L
o
g
i
n
s
u
c
c
e
s
s
"
)
;
}
e
l
s
e
{
o
u
t
.
p
r
i
n
t
l
n
(
"
L
o
g
i
n
f
a
i
l
e
d
"
)
;
}
%
>
<
%
@
p
a
g
e
i
m
p
o
r
t
=
"
j
a
v
a
.
s
q
l
.
*
"
%
>
<
%
@
p
a
g
e
l
a
n
g
u
a
g
e
=
"
j
a
v
a
"
c
o
n
t
e
n
t
T
y
p
e
=
"
t
e
x
t
/
h
t
m
l
;
c
h
a
r
s
e
t
=
I
S
O
-
8
8
5
9
-
1
"
p
a
g
e
E
n
c
o
d
i
n
g
=
"
I
S
O
-
8
8
5
9
-
1
"
%
>
<
!
D
O
C
T
Y
P
E
h
t
m
l
P
U
B
L
I
C
"
-
/
/
W
3
C
/
/
D
T
D
H
T
M
L
4
.
0
1
T
r
a
n
s
i
t
i
o
n
a
l
/
/
E
N
"
"
h
t
t
p
:
/
/
w
w
w
.
w
3
.
o
r
g
/
T
R
/
h
t
m
l
4
/
l
o
o
s
e
.
d
t
d
"
>
<
h
t
m
l
>
<
h
e
a
d
>
<
m
e
t
a
h
t
t
p
-
e
q
u
i
v
=
"
C
o
n
t
e
n
t
-
T
y
p
e
"
c
o
n
t
e
n
t
=
"
t
e
x
t
/
h
t
m
l
;
c
h
a
r
s
e
t
=
I
S
O
-
8
8
5
9
-
1
"
>
<
t
i
t
l
e
>
<
/
t
i
t
l
e
>
<
/
h
e
a
d
>
<
b
o
d
y
>
<
%
S
t
r
i
n
g
u
s
e
r
=
r
e
q
u
e
s
t
.
g
e
t
P
a
r
a
m
e
t
e
r
(
"
u
s
e
r
"
)
;
S
t
r
i
n
g
p
a
s
s
=
r
e
q
u
e
s
t
.
g
e
t
P
a
r
a
m
e
t
e
r
(
"
p
a
s
s
"
)
;
C
l
a
s
s
.
f
o
r
N
a
m
e
(
"
c
o
m
.
m
y
s
q
l
.
j
d
b
c
.
D
r
i
v
e
r
"
)
;
C
o
n
n
e
c
t
i
o
n
c
o
n
=
(
C
o
n
n
e
c
t
i
o
n
)
D
r
i
v
e
r
M
a
n
a
g
e
r
.
g
e
t
C
o
n
n
e
c
t
i
o
n
(
"
j
d
b
c
:
m
y
s
q
l
:
/
/
l
o
c
a
l
h
o
s
t
:
3
3
0
6
/
m
y
d
b
"
,
"
r
o
o
t
"
,
"
"
)
;
2
1
2
2
2
3
2
4
2
5
2
6
2
7
2
8
2
9
修
复
后
的
代
码
使
用
了
P
r
e
p
a
r
e
d
S
t
a
t
e
m
e
n
t
预
编
译
的
方
式
,
使
用
这
种
方
式
无
需
对
传
入
的
参
数
进
行
过
滤
等
处
理
,
因
为
由
于
P
r
e
p
a
r
e
d
S
t
a
t
e
m
e
n
t
内
置
了
字
符
过
滤
,
因
此
是
能
够
防
止
S
Q
L
注
入
的
。
数
据
明
文
存
储
1
1
年
底
C
S
D
N
的
数
据
在
网
上
泄
漏
,
据
说
库
中
的
密
码
都
是
明
文
存
储
的
,
因
此
导
致
非
常
大
的
影
响
。
如
果
使
用
了
复
杂
的
加
密
存
储
,
即
时
数
据
泄
漏
,
密
码
也
有
可
能
不
会
破
解
成
功
,
下
面
看
看
J
A
V
A
代
码
中
数
据
明
文
存
储
的
设
计
缺
陷
是
如
何
形
成
的
。
漏
洞
示
例
:
?
P
r
e
p
a
r
e
d
S
t
a
t
e
m
e
n
t
p
s
=
(
P
r
e
p
a
r
e
d
S
t
a
t
e
m
e
n
t
)
c
o
n
.
p
r
e
p
a
r
e
S
t
a
t
e
m
e
n
t
(
"
s
e
l
e
c
t
*
f
r
o
m
u
s
e
r
s
w
h
e
r
e
u
s
e
r
n
a
m
e
=
?
a
n
d
p
a
s
s
w
o
r
d
=
?
l
i
m
i
t
0
,
1
"
)
;
p
s
.
s
e
t
S
t
r
i
n
g
(
1
,
u
s
e
r
)
;
p
s
.
s
e
t
S
t
r
i
n
g
(
2
,
p
a
s
s
)
;
R
e
s
u
l
t
S
e
t
r
s
=
p
s
.
e
x
e
c
u
t
e
Q
u
e
r
y
(
)
;
i
f
(
r
s
.
n
e
x
t
(
)
)
{
o
u
t
.
p
r
i
n
t
l
n
(
"
L
o
g
i
n
s
u
c
c
e
s
s
"
)
;
}
e
l
s
e
{
o
u
t
.
p
r
i
n
t
l
n
(
"
L
o
g
i
n
f
a
i
l
e
d
"
)
;
}
%
>
<
/
b
o
d
y
>
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
可
以
看
到
上
面
的
代
码
对
获
取
到
的
u
s
e
r
和
p
a
s
s
的
没
有
做
任
何
的
加
密
处
理
,
直
接
存
储
到
数
据
库
中
,
导
致
存
在
明
文
存
储
的
缺
陷
。
修
复
后
的
代
码
如
下
:
<
%
@
p
a
g
e
i
m
p
o
r
t
=
"
j
a
v
a
.
s
q
l
.
*
"
%
>
<
%
@
p
a
g
e
l
a
n
g
u
a
g
e
=
"
j
a
v
a
"
c
o
n
t
e
n
t
T
y
p
e
=
"
t
e
x
t
/
h
t
m
l
;
c
h
a
r
s
e
t
=
I
S
O
-
8
8
5
9
-
1
"
p
a
g
e
E
n
c
o
d
i
n
g
=
"
I
S
O
-
8
8
5
9
-
1
"
%
>
<
!
D
O
C
T
Y
P
E
h
t
m
l
P
U
B
L
I
C
"
-
/
/
W
3
C
/
/
D
T
D
H
T
M
L
4
.
0
1
T
r
a
n
s
i
t
i
o
n
a
l
/
/
E
N
"
"
h
t
t
p
:
/
/
w
w
w
.
w
3
.
o
r
g
/
T
R
/
h
t
m
l
4
/
l
o
o
s
e
.
d
t
d
"
>
<
h
t
m
l
>
<
h
e
a
d
>
<
m
e
t
a
h
t
t
p
-
e
q
u
i
v
=
"
C
o
n
t
e
n
t
-
T
y
p
e
"
c
o
n
t
e
n
t
=
"
t
e
x
t
/
h
t
m
l
;
c
h
a
r
s
e
t
=
I
S
O
-
8
8
5
9
-
1
"
>
<
t
i
t
l
e
>
<
/
t
i
t
l
e
>
<
/
h
e
a
d
>
<
b
o
d
y
>
<
%
S
t
r
i
n
g
u
s
e
r
=
r
e
q
u
e
s
t
.
g
e
t
P
a
r
a
m
e
t
e
r
(
"
u
s
e
r
"
)
;
S
t
r
i
n
g
p
a
s
s
=
r
e
q
u
e
s
t
.
g
e
t
P
a
r
a
m
e
t
e
r
(
"
p
a
s
s
"
)
;
C
l
a
s
s
.
f
o
r
N
a
m
e
(
"
c
o
m
.
m
y
s
q
l
.
j
d
b
c
.
D
r
i
v
e
r
"
)
;
C
o
n
n
e
c
t
i
o
n
c
o
n
=
(
C
o
n
n
e
c
t
i
o
n
)
D
r
i
v
e
r
M
a
n
a
g
e
r
.
g
e
t
C
o
n
n
e
c
t
i
o
n
(
"
j
d
b
c
:
m
y
s
q
l
:
/
/
l
o
c
a
l
h
o
s
t
:
3
3
0
6
/
m
y
d
b
"
,
"
r
o
o
t
"
,
"
"
)
;
P
r
e
p
a
r
e
d
S
t
a
t
e
m
e
n
t
p
s
=
(
P
r
e
p
a
r
e
d
S
t
a
t
e
m
e
n
t
)
c
o
n
.
p
r
e
p
a
r
e
S
t
a
t
e
m
e
n
t
(
"
i
n
s
e
r
t
i
n
t
o
u
s
e
r
s
_
c
r
y
p
t
v
a
l
u
e
s
(
?
,
?
)
"
)
;
p
s
.
s
e
t
S
t
r
i
n
g
(
1
,
u
s
e
r
)
;
p
s
.
s
e
t
S
t
r
i
n
g
(
1
,
p
a
s
s
)
;
i
n
t
r
e
s
=
p
s
.
e
x
e
c
u
t
e
U
p
d
a
t
e
(
)
;
i
f
(
r
e
s
>
0
)
{
o
u
t
.
p
r
i
n
t
l
n
(
"
R
e
g
i
s
t
e
r
s
u
c
c
e
s
s
"
)
;
}
e
l
s
e
{
o
u
t
.
p
r
i
n
t
l
n
(
"
R
e
g
i
s
t
e
r
f
a
i
l
e
d
"
)
;
}
%
>
<
/
b
o
d
y
>
?
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
<
%
@
p
a
g
e
i
m
p
o
r
t
=
"
j
a
v
a
.
u
t
i
l
.
C
a
l
e
n
d
a
r
"
%
>
<
%
@
p
a
g
e
i
m
p
o
r
t
=
"
j
a
v
a
.
t
e
x
t
.
S
i
m
p
l
e
D
a
t
e
F
o
r
m
a
t
"
%
>
<
%
@
p
a
g
e
i
m
p
o
r
t
=
"
j
a
v
a
.
t
e
x
t
.
D
a
t
e
F
o
r
m
a
t
"
%
>
<
%
@
p
a
g
e
i
m
p
o
r
t
=
"
j
a
v
a
.
m
a
t
h
.
B
i
g
I
n
t
e
g
e
r
"
%
>
<
%
@
p
a
g
e
i
m
p
o
r
t
=
"
j
a
v
a
.
s
e
c
u
r
i
t
y
.
M
e
s
s
a
g
e
D
i
g
e
s
t
"
%
>
<
%
@
p
a
g
e
i
m
p
o
r
t
=
"
j
a
v
a
.
s
q
l
.
*
"
%
>
<
%
@
p
a
g
e
l
a
n
g
u
a
g
e
=
"
j
a
v
a
"
c
o
n
t
e
n
t
T
y
p
e
=
"
t
e
x
t
/
h
t
m
l
;
c
h
a
r
s
e
t
=
I
S
O
-
8
8
5
9
-
1
"
p
a
g
e
E
n
c
o
d
i
n
g
=
"
I
S
O
-
8
8
5
9
-
1
"
%
>
<
!
D
O
C
T
Y
P
E
h
t
m
l
P
U
B
L
I
C
"
-
/
/
W
3
C
/
/
D
T
D
H
T
M
L
4
.
0
1
T
r
a
n
s
i
t
i
o
n
a
l
/
/
E
N
"
"
h
t
t
p
:
/
/
w
w
w
.
w
3
.
o
r
g
/
T
R
/
h
t
m
l
4
/
l
o
o
s
e
.
d
t
d
"
>
<
h
t
m
l
>
<
h
e
a
d
>
<
m
e
t
a
h
t
t
p
-
e
q
u
i
v
=
"
C
o
n
t
e
n
t
-
T
y
p
e
"
c
o
n
t
e
n
t
=
"
t
e
x
t
/
h
t
m
l
;
c
h
a
r
s
e
t
=
I
S
O
-
8
8
5
9
-
1
"
>
<
t
i
t
l
e
>
<
/
t
i
t
l
e
>
<
/
h
e
a
d
>
<
b
o
d
y
>
<
%
S
t
r
i
n
g
u
s
e
r
=
r
e
q
u
e
s
t
.
g
e
t
P
a
r
a
m
e
t
e
r
(
"
u
s
e
r
"
)
;
S
t
r
i
n
g
p
a
s
s
=
r
e
q
u
e
s
t
.
g
e
t
P
a
r
a
m
e
t
e
r
(
"
p
a
s
s
"
)
;
D
a
t
e
F
o
r
m
a
t
d
a
t
e
F
o
r
m
a
t
=
n
e
w
S
i
m
p
l
e
D
a
t
e
F
o
r
m
a
t
(
"
y
y
y
y
/
M
M
/
d
d
H
H
:
m
m
:
s
s
"
)
;
C
a
l
e
n
d
a
r
c
a
l
=
C
a
l
e
n
d
a
r
.
g
e
t
I
n
s
t
a
n
c
e
(
)
;
S
t
r
i
n
g
r
e
g
_
t
i
m
e
=
(
d
a
t
e
F
o
r
m
a
t
.
f
o
r
m
a
t
(
c
a
l
.
g
e
t
T
i
m
e
(
)
)
)
.
t
o
S
t
r
i
n
g
(
)
;
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
S
t
r
i
n
g
r
e
g
_
t
i
m
e
=
(
d
a
t
e
F
o
r
m
a
t
.
f
o
r
m
a
t
(
c
a
l
.
g
e
t
T
i
m
e
(
)
)
)
.
t
o
S
t
r
i
n
g
(
)
;
S
t
r
i
n
g
o
r
i
g
i
n
a
l
=
p
a
s
s
+
r
e
g
_
t
i
m
e
;
S
t
r
i
n
g
s
=
p
a
s
s
+
r
e
g
_
t
i
m
e
;
M
e
s
s
a
g
e
D
i
g
e
s
t
m
=
M
e
s
s
a
g
e
D
i
g
e
s
t
.
g
e
t
I
n
s
t
a
n
c
e
(
"
M
D
5
"
)
;
m
.
u
p
d
a
t
e
(
s
.
g
e
t
B
y
t
e
s
(
)
,
0
,
s
.
l
e
n
g
t
h
(
)
)
;
S
t
r
i
n
g
c
a
l
c
_
h
a
s
h
=
n
e
w
B
i
g
I
n
t
e
g
e
r
(
1
,
m
.
d
i
g
e
s
t
(
)
)
.
t
o
S
t
r
i
n
g
(
1
6
)
;
i
f
(
c
a
l
c
_
h
a
s
h
.
l
e
n
g
t
h
(
)
<
3
2
)
{
c
a
l
c
_
h
a
s
h
=
"
0
"
+
c
a
l
c
_
h
a
s
h
;
}
C
l
a
s
s
.
f
o
r
N
a
m
e
(
"
c
o
m
.
m
y
s
q
l
.
j
d
b
c
.
D
r
i
v
e
r
"
)
;
C
o
n
n
e
c
t
i
o
n
c
o
n
=
(
C
o
n
n
e
c
t
i
o
n
)
D
r
i
v
e
r
M
a
n
a
g
e
r
.
g
e
t
C
o
n
n
e
c
t
i
o
n
(
"
j
d
b
c
:
m
y
s
q
l
:
/
/
l
o
c
a
l
h
o
s
t
:
3
3
0
6
/
m
y
d
b
"
,
"
r
o
o
t
"
,
"
"
)
;
P
r
e
p
a
r
e
d
S
t
a
t
e
m
e
n
t
p
s
=
(
P
r
e
p
a
r
e
d
S
t
a
t
e
m
e
n
t
)
c
o
n
.
p
r
e
p
a
r
e
S
t
a
t
e
m
e
n
t
(
"
i
n
s
e
r
t
i
n
t
o
u
s
e
r
s
_
c
r
y
p
t
v
a
l
u
e
s
(
?
,
?
,
?
)
"
)
;
p
s
.
s
e
t
S
t
r
i
n
g
(
1
,
u
s
e
r
)
;
p
s
.
s
e
t
S
t
r
i
n
g
(
2
,
c
a
l
c
_
h
a
s
h
)
;
p
s
.
s
e
t
S
t
r
i
n
g
(
3
,
r
e
g
_
t
i
m
e
)
;
i
n
t
r
e
s
=
p
s
.
e
x
e
c
u
t
e
U
p
d
a
t
e
(
)
;
i
f
(
r
e
s
>
0
)
{
o
u
t
.
p
r
i
n
t
l
n
(
"
R
e
g
i
s
t
e
r
s
u
c
c
e
s
s
"
)
;
}
修
复
后
的
代
码
将
用
户
注
册
的
时
候
输
入
的
密
码
和
注
册
时
间
组
合
加
密
之
后
保
存
在
数
据
库
中
,
这
样
如
果
数
据
泄
漏
,
不
阅
读
源
代
码
很
难
将
密
码
破
解
成
明
文
形
式
,
大
大
降
低
了
泄
密
之
后
的
影
响
。
失
效
的
会
话
管
理
该
漏
洞
主
要
是
因
为
W
e
b
应
用
程
序
没
有
正
确
的
执
行
会
话
管
理
,
例
如
用
户
登
陆
前
的
会
话
C
o
o
k
i
e
和
登
录
后
的
是
一
样
的
,
另
外
一
个
例
子
是
当
用
户
点
击
退
出
的
时
候
,
S
e
s
s
i
o
n
不
会
失
效
。
示
例
漏
洞
代
码
:
?
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
}
e
l
s
e
{
o
u
t
.
p
r
i
n
t
l
n
(
"
R
e
g
i
s
t
e
r
f
a
i
l
e
d
"
)
;
}
%
>
<
/
b
o
d
y
>
<
/
h
t
m
l
>
<
%
@
p
a
g
e
i
m
p
o
r
t
=
"
j
a
v
a
.
s
q
l
.
*
"
%
>
<
%
@
p
a
g
e
l
a
n
g
u
a
g
e
=
"
j
a
v
a
"
c
o
n
t
e
n
t
T
y
p
e
=
"
t
e
x
t
/
h
t
m
l
;
c
h
a
r
s
e
t
=
I
S
O
-
8
8
5
9
-
1
"
p
a
g
e
E
n
c
o
d
i
n
g
=
"
I
S
O
-
8
8
5
9
-
1
"
%
>
<
!
D
O
C
T
Y
P
E
h
t
m
l
P
U
B
L
I
C
"
-
/
/
W
3
C
/
/
D
T
D
H
T
M
L
4
.
0
1
T
r
a
n
s
i
t
i
o
n
a
l
/
/
E
N
"
"
h
t
t
p
:
/
/
w
w
w
.
w
3
.
o
r
g
/
T
R
/
h
t
m
l
4
/
l
o
o
s
e
.
d
t
d
"
>
<
h
t
m
l
>
<
h
e
a
d
>
<
m
e
t
a
h
t
t
p
-
e
q
u
i
v
=
"
C
o
n
t
e
n
t
-
T
y
p
e
"
c
o
n
t
e
n
t
=
"
t
e
x
t
/
h
t
m
l
;
c
h
a
r
s
e
t
=
I
S
O
-
8
8
5
9
-
1
"
>
<
t
i
t
l
e
>
<
/
t
i
t
l
e
>
<
/
h
e
a
d
>
<
b
o
d
y
>
<
%
S
t
r
i
n
g
u
s
e
r
=
r
e
q
u
e
s
t
.
g
e
t
P
a
r
a
m
e
t
e
r
(
"
u
s
e
r
"
)
;
S
t
r
i
n
g
p
a
s
s
=
r
e
q
u
e
s
t
.
g
e
t
P
a
r
a
m
e
t
e
r
(
"
p
a
s
s
"
)
;
C
l
a
s
s
.
f
o
r
N
a
m
e
(
"
c
o
m
.
m
y
s
q
l
.
j
d
b
c
.
D
r
i
v
e
r
"
)
;
C
o
n
n
e
c
t
i
o
n
c
o
n
=
(
C
o
n
n
e
c
t
i
o
n
)
D
r
i
v
e
r
M
a
n
a
g
e
r
.
g
e
t
C
o
n
n
e
c
t
i
o
n
(
"
j
d
b
c
:
m
y
s
q
l
:
/
/
l
o
c
a
l
h
o
s
t
:
3
3
0
6
/
m
y
d
b
"
,
"
r
o
o
t
"
,
"
"
)
;
P
r
e
p
a
r
e
d
S
t
a
t
e
m
e
n
t
p
s
=
(
P
r
e
p
a
r
e
d
S
t
a
t
e
m
e
n
t
)
c
o
n
.
p
r
e
p
a
r
e
S
t
a
t
e
m
e
n
t
(
"
s
e
l
e
c
t
*
f
r
o
m
u
s
e
r
s
w
h
e
r
e
u
s
e
r
n
a
m
e
=
?
a
n
d
p
a
s
s
w
o
r
d
=
?
l
i
m
i
t
0
,
1
"
2
0
2
1
2
2
2
3
2
4
2
5
2
6
2
7
2
8
2
9
修
复
后
的
代
码
:
?
1
2
"
s
e
l
e
c
t
*
f
r
o
m
u
s
e
r
s
w
h
e
r
e
u
s
e
r
n
a
m
e
=
?
a
n
d
p
a
s
s
w
o
r
d
=
?
l
i
m
i
t
0
,
1
"
)
;
p
s
.
s
e
t
S
t
r
i
n
g
(
1
,
u
s
e
r
)
;
p
s
.
s
e
t
S
t
r
i
n
g
(
2
,
p
a
s
s
)
;
R
e
s
u
l
t
S
e
t
r
s
=
p
s
.
e
x
e
c
u
t
e
Q
u
e
r
y
(
)
;
i
f
(
r
s
.
n
e
x
t
(
)
)
{
s
e
s
s
i
o
n
.
s
e
t
A
t
t
r
i
b
u
t
e
(
"
u
s
e
r
a
c
c
"
,
r
s
.
g
e
t
S
t
r
i
n
g
(
"
u
s
e
r
"
)
)
;
o
u
t
.
p
r
i
n
t
l
n
(
"
L
o
g
i
n
s
u
c
c
e
s
s
"
)
;
}
e
l
s
e
{
o
u
t
.
p
r
i
n
t
l
n
(
"
L
o
g
i
n
f
a
i
l
e
d
"
)
;
}
%
>
<
/
b
o
d
y
>
<
%
@
p
a
g
e
i
m
p
o
r
t
=
"
j
a
v
a
.
s
q
l
.
*
"
%
>
<
%
@
p
a
g
e
l
a
n
g
u
a
g
e
=
"
j
a
v
a
"
c
o
n
t
e
n
t
T
y
p
e
=
"
t
e
x
t
/
h
t
m
l
;
c
h
a
r
s
e
t
=
I
S
O
-
8
8
5
9
-
1
"
p
a
g
e
E
n
c
o
d
i
n
g
=
"
I
S
O
-
8
8
5
9
-
1
"
%
>
<
!
D
O
C
T
Y
P
E
h
t
m
l
P
U
B
L
I
C
"
-
/
/
W
3
C
/
/
D
T
D
H
T
M
L
4
.
0
1
T
r
a
n
s
i
t
i
o
n
a
l
/
/
E
N
"
"
h
t
t
p
:
/
/
w
w
w
.
w
3
.
o
r
g
/
T
R
/
h
t
m
l
4
/
l
o
o
s
e
.
d
t
d
"
>
<
h
t
m
l
>
<
h
e
a
d
>
<
m
e
t
a
h
t
t
p
-
e
q
u
i
v
=
"
C
o
n
t
e
n
t
-
T
y
p
e
"
c
o
n
t
e
n
t
=
"
t
e
x
t
/
h
t
m
l
;
c
h
a
r
s
e
t
=
I
S
O
-
8
8
5
9
-
1
"
>
<
t
i
t
l
e
>
<
/
t
i
t
l
e
>
<
/
h
e
a
d
>
<
b
o
d
y
>
<
%
S
t
r
i
n
g
u
s
e
r
=
r
e
q
u
e
s
t
.
g
e
t
P
a
r
a
m
e
t
e
r
(
"
u
s
e
r
"
)
;
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
以
上
修
复
后
的
代
码
中
,
用
户
在
登
录
的
时
候
,
首
先
会
让
之
前
的
s
e
s
s
i
o
n
失
效
,
然
后
又
获
取
新
的
s
e
e
s
i
o
n
。
查
看
更
多
文
章
,
关
注
下
方
二
维
码
S
t
r
i
n
g
p
a
s
s
=
r
e
q
u
e
s
t
.
g
e
t
P
a
r
a
m
e
t
e
r
(
"
p
a
s
s
"
)
;
C
l
a
s
s
.
f
o
r
N
a
m
e
(
"
c
o
m
.
m
y
s
q
l
.
j
d
b
c
.
D
r
i
v
e
r
"
)
;
C
o
n
n
e
c
t
i
o
n
c
o
n
=
(
C
o
n
n
e
c
t
i
o
n
)
D
r
i
v
e
r
M
a
n
a
g
e
r
.
g
e
t
C
o
n
n
e
c
t
i
o
n
(
"
j
d
b
c
:
m
y
s
q
l
:
/
/
l
o
c
a
l
h
o
s
t
:
3
3
0
6
/
u
s
e
r
d
b
"
,
"
r
o
o
t
"
,
"
"
)
;
P
r
e
p
a
r
e
d
S
t
a
t
e
m
e
n
t
p
s
=
(
P
r
e
p
a
r
e
d
S
t
a
t
e
m
e
n
t
)
c
o
n
.
p
r
e
p
a
r
e
S
t
a
t
e
m
e
n
t
(
"
s
e
l
e
c
t
*
f
r
o
m
u
s
e
r
s
w
h
e
r
e
u
s
e
r
n
a
m
e
=
?
a
n
d
p
a
s
s
w
o
r
d
=
?
l
i
m
i
t
0
,
1
"
)
;
p
s
.
s
e
t
S
t
r
i
n
g
(
1
,
u
s
e
r
)
;
p
s
.
s
e
t
S
t
r
i
n
g
(
2
,
p
a
s
s
)
;
R
e
s
u
l
t
S
e
t
r
s
=
p
s
.
e
x
e
c
u
t
e
Q
u
e
r
y
(
)
;
i
f
(
r
s
.
n
e
x
t
(
)
)
{
s
e
s
s
i
o
n
.
i
n
v
a
l
i
d
a
t
e
(
)
;
r
e
q
u
e
s
t
.
g
e
t
S
e
s
s
i
o
n
(
t
r
u
e
)
;
s
e
s
s
i
o
n
.
s
e
t
A
t
t
r
i
b
u
t
e
(
"
u
s
e
r
a
c
c
"
,
r
s
.
g
e
t
S
t
r
i
n
g
(
"
u
s
e
r
"
)
)
;
o
u
t
.
p
r
i
n
t
l
n
(
"
L
o
g
i
n
s
u
c
c
e
s
s
"
)
;
}
e
l
s
e
{
o
u
t
.
p
r
i
n
t
l
n
(
"
L
o
g
i
n
f
a
i
l
e
d
"
)
;
}
%
>
<
/
b
o
d
y
>
回复
举报
上一个主题
下一个主题
高级模式
B
Color
Image
Link
Quote
Code
Smilies
您需要登录后才可以回帖
登录
|
立即注册
本版积分规则
发表回复
!disable!!post_parseurl!
使用Markdown编辑器编辑
使用富文本编辑器编辑
回帖后跳转到最后一页