论坛
BBS
空间测绘
发表
发布文章
提问答疑
搜索
您还未登录
登录后即可体验更多功能
立即登录
我的收藏
提问答疑
我要投稿
云安全
[13252] 2018-10-01_浅谈PHP安全规范
文档创建者:
s7ckTeam
浏览次数:
0
最后更新:
2025-01-18
云安全
0 人阅读
|
0 人回复
s7ckTeam
s7ckTeam
当前离线
积分
-54
6万
主题
-6万
回帖
-54
积分
管理员
积分
-54
发消息
2018-10-01_浅谈PHP安全规范
浅
谈
P
H
P
安
全
规
范
原
创
l
i
t
t
l
e
p
o
t
a
t
o
F
r
e
e
B
u
f
2
0
1
8
-
1
0
-
0
1
p
h
p
因
天
生
支
持
因
天
生
支
持
w
e
b
应
用
的
开
发
,
以
其
简
单
易
学
,
开
发
效
率
高
而
备
受
喜
爱
。
使
其
占
据
了
大
片
的
市
场
。
但
是
应
用
的
开
发
,
以
其
简
单
易
学
,
开
发
效
率
高
而
备
受
喜
爱
。
使
其
占
据
了
大
片
的
市
场
。
但
是
p
h
p
本
本
身
的
安
全
问
题
却
一
直
不
曾
消
停
,
以
及
不
规
范
的
身
的
安
全
问
题
却
一
直
不
曾
消
停
,
以
及
不
规
范
的
p
h
p
代
码
编
写
规
范
,
使
得
代
码
编
写
规
范
,
使
得
w
e
b
应
用
漏
洞
百
出
。
这
篇
文
章
从
配
置
文
件
应
用
漏
洞
百
出
。
这
篇
文
章
从
配
置
文
件
和
代
码
编
写
角
度
出
发
,
总
结
记
录
和
代
码
编
写
角
度
出
发
,
总
结
记
录
p
h
p
相
关
安
全
。
新
手
上
路
,
向
前
辈
致
敬
。
相
关
安
全
。
新
手
上
路
,
向
前
辈
致
敬
。
请
充
分
了
解
你
的
请
充
分
了
解
你
的
p
h
p
基
本
信
息
基
本
信
息
注
意
到
以
下
的
文
件
结
构
在
新
版
本
p
h
p
或
者
不
同
的
发
行
版
中
略
有
不
同
,
就
好
比
在
u
b
u
n
t
u
1
8
.
0
4
中
安
装
p
h
p
7
就
和
下
面
的
文
件
结
构
有
较
大
的
差
别
,
所
以
下
面
的
文
件
仅
仅
作
为
一
个
a
p
a
c
h
e
的
架
构
参
考
。
R
o
o
t
:
/
v
a
r
/
w
w
w
/
h
t
m
l
默
认
W
e
b
服
务
:
A
p
a
c
h
e
(
可
以
使
用
L
i
g
h
t
t
p
d
或
N
g
i
n
x
代
替
)
默
认
P
H
P
配
置
文
件
:
/
e
t
c
/
p
h
p
.
i
n
i
默
认
P
H
P
E
x
t
e
n
s
i
o
n
s
配
置
目
录
:
/
e
t
c
/
p
h
p
.
d
/
P
H
P
安
全
配
置
样
例
文
件
:
/
e
t
c
/
p
h
p
.
d
/
s
e
c
u
r
i
t
y
.
i
n
i
(
需
要
使
用
文
本
编
辑
器
创
建
这
个
文
件
)
p
h
p
版
本
:
p
h
p
-
v
查
看
当
前
P
H
P
所
编
译
:
p
h
p
-
m
敏
感
配
置
敏
感
配
置
以
下
是
一
些
常
见
的
配
置
举
例
,
更
多
请
查
看
:
h
t
t
p
:
/
/
p
h
p
.
n
e
t
/
m
a
n
u
a
l
/
z
h
/
i
n
i
.
c
o
r
e
.
p
h
p
#
i
n
i
.
v
a
r
i
a
b
l
e
s
-
o
r
d
e
r
。
不
在
请
求
头
中
泄
露
p
h
p
信
息
:
不
回
显
p
h
p
错
误
(
包
括
运
行
错
误
时
和
启
动
时
错
误
)
,
但
是
进
行
错
误
记
录
:
文
件
上
传
开
启
与
否
和
最
大
上
传
文
件
限
制
:
控
制
最
大
p
o
s
t
数
据
:
注
意
:
到
要
比
u
p
l
o
a
d
_
m
a
x
_
f
i
l
e
s
i
z
e
大
,
否
则
后
者
失
效
。
关
闭
远
程
代
码
执
行
:
关
闭
全
局
注
册
变
量
,
不
过
默
认
5
.
x
版
本
的
p
h
p
是
o
f
f
:
关
于
安
全
模
式
和
粗
暴
的
魔
术
引
号
过
滤
,
注
意
到
s
a
v
e
_
m
o
d
e
模
式
在
p
h
p
5
.
3
以
上
版
本
,
s
a
f
e
_
m
o
d
e
被
弃
用
,
在
p
h
p
5
.
4
以
上
版
本
,
则
将
此
特
性
完
全
去
除
了
:
资
源
管
理
防
止
过
分
消
耗
服
务
器
资
源
:
禁
用
危
险
函
数
:
限
制
p
h
p
访
问
文
件
系
统
:
s
e
s
s
i
o
n
保
存
路
径
:
上
传
文
件
默
认
路
径
:
关
于
危
险
函
数
关
于
危
险
函
数
e
x
p
o
s
e
_
p
h
p
=
O
f
f
p
l
a
y
_
e
r
r
o
r
s
=
O
f
f
d
i
s
p
l
a
y
_
s
t
a
r
t
u
p
_
e
r
r
o
r
s
=
o
f
f
l
o
g
_
e
r
r
o
r
s
=
O
n
e
r
r
o
r
_
l
o
g
=
/
v
a
r
/
l
o
g
/
h
t
t
p
d
/
p
h
p
_
s
c
r
i
p
t
s
_
e
r
r
o
r
.
l
o
g
f
i
l
e
_
u
p
l
o
a
d
s
=
O
n
u
p
l
o
a
d
_
m
a
x
_
f
i
l
e
s
i
z
e
=
1
M
p
o
s
t
_
m
a
x
_
s
i
z
e
=
1
M
a
l
l
o
w
_
u
r
l
_
f
o
p
e
n
=
O
f
f
a
l
l
o
w
_
u
r
l
_
i
n
c
l
u
d
e
=
O
f
f
r
e
g
i
s
t
e
r
_
g
l
o
b
a
l
s
=
o
f
f
s
a
f
e
_
m
o
d
e
=
O
n
s
a
f
e
_
m
o
d
e
_
i
n
c
l
u
d
e
_
d
i
r
=
D
:
/
p
h
p
s
t
u
d
y
/
w
w
w
/
i
n
c
l
u
d
e
/
m
a
g
i
c
_
q
u
o
t
e
s
_
g
p
c
=
O
f
f
#
如
果
开
启
了
这
个
,
然
后
在
p
h
p
应
用
中
使
用
a
d
d
s
l
a
s
h
e
s
(
)
过
滤
输
入
会
造
成
双
重
转
义
,
使
得
过
滤
无
济
于
事
,
遇
到
这
种
情
况
时
可
以
使
用
函
数
g
e
t
_
m
a
g
i
c
_
q
u
o
t
e
s
_
g
p
c
(
)
进
行
检
测
。
m
a
g
i
c
_
q
u
o
t
e
s
_
r
u
n
t
i
m
e
m
a
x
_
e
x
e
c
u
t
i
o
n
_
t
i
m
e
=
3
0
m
a
x
_
i
n
p
u
t
_
t
i
m
e
=
3
0
m
e
m
o
r
y
_
l
i
m
i
t
=
4
0
M
d
i
s
a
b
l
e
_
f
u
n
c
t
i
o
n
s
=
p
h
p
i
n
f
o
,
e
v
a
l
,
p
a
s
s
t
h
r
u
,
a
s
s
e
r
t
,
e
x
e
c
,
s
y
s
t
e
m
,
i
n
i
_
s
e
t
,
i
n
i
_
g
e
t
,
g
e
t
_
i
n
c
l
u
d
e
d
_
f
i
l
e
s
,
g
e
t
_
d
e
f
i
n
e
d
_
f
u
n
c
t
i
o
n
s
,
g
e
t
_
d
e
f
i
n
e
d
_
c
o
n
s
t
a
n
t
s
,
g
e
t
_
d
e
f
i
n
e
d
_
v
a
r
s
,
g
l
o
b
,
`
`
,
c
h
r
o
o
t
,
s
c
a
n
d
i
r
,
c
h
g
r
p
,
c
h
o
w
n
,
s
h
e
l
l
_
e
x
e
c
,
p
r
o
c
_
o
p
e
n
,
p
r
o
c
_
g
e
t
_
s
t
a
t
u
s
,
i
n
i
_
a
l
t
e
r
,
i
n
i
_
r
e
s
t
o
r
e
,
d
l
,
p
f
s
o
c
k
o
p
e
n
,
o
p
e
n
l
o
g
,
s
y
s
l
o
g
,
r
e
a
d
l
i
n
k
,
s
y
m
l
i
n
k
,
p
o
p
e
p
a
s
s
t
h
r
u
,
s
t
r
e
a
m
_
s
o
c
k
e
t
_
s
e
r
v
e
r
,
f
s
o
c
k
e
t
,
f
s
o
c
k
o
p
e
n
o
p
e
n
_
b
a
s
e
d
i
r
=
'
/
v
a
r
/
w
w
w
/
h
t
m
l
/
'
;
.
.
.
.
.
.
;
.
.
.
.
.
.
s
e
s
s
i
o
n
.
s
a
v
e
_
p
a
t
h
=
"
/
v
a
r
/
l
i
b
/
p
h
p
/
s
e
s
s
i
o
n
"
u
p
l
o
a
d
_
t
m
p
_
d
i
r
=
"
/
v
a
r
/
l
i
b
/
p
h
p
/
u
p
l
o
a
d
"
特
殊
符
号
:
`
`
:
反
引
号
运
算
符
在
激
活
了
安
全
模
式
或
者
关
闭
了
s
h
e
l
l
_
e
x
e
c
(
)
时
是
无
效
的
,
同
时
与
其
它
某
些
语
言
不
同
,
反
引
号
不
能
在
双
引
号
字
符
串
中
使
用
。
否
则
将
会
当
作
s
h
e
l
l
命
令
执
行
,
执
行
效
果
等
同
于
s
h
e
l
l
_
e
x
e
c
(
)
。
文
件
操
作
:
h
t
t
p
:
/
/
p
h
p
.
n
e
t
/
m
a
n
u
a
l
/
z
h
/
r
e
f
.
f
i
l
e
s
y
s
t
e
m
.
p
h
p
。
全
局
信
息
,
配
置
等
:
h
t
t
p
:
/
/
p
h
p
.
n
e
t
/
m
a
n
u
a
l
/
z
h
/
r
e
f
.
i
n
f
o
.
p
h
p
。
程
序
执
行
:
h
t
t
p
:
/
/
p
h
p
.
n
e
t
/
m
a
n
u
a
l
/
z
h
/
b
o
o
k
.
e
x
e
c
.
p
h
p
。
不
要
过
分
相
信
不
要
过
分
相
信
p
h
p
弱
类
型
弱
类
型
前
人
之
述
备
矣
,
仅
仅
做
个
汇
总
。
同
样
还
可
以
参
看
官
网
给
出
的
类
型
表
。
全
局
注
册
变
量
全
局
注
册
变
量
如
果
已
经
弃
用
的
r
e
g
i
s
t
e
r
_
g
l
o
b
a
l
s
指
令
被
设
置
为
o
n
那
么
局
部
变
量
也
将
在
脚
本
的
全
局
作
用
域
中
可
用
。
例
如
,
$
_
P
O
S
T
[
‘
f
o
o
’
]
也
将
以
$
f
o
o
的
形
式
存
在
。
这
将
会
造
成
一
些
变
量
覆
盖
,
条
件
判
断
绕
过
。
以
下
是
简
化
的
全
局
变
量
认
证
绕
过
模
型
:
0
=
=
'
0
'
/
/
t
r
u
e
0
=
=
'
a
b
c
d
e
f
g
'
/
/
t
r
u
e
1
=
=
'
1
a
b
c
d
e
f
'
/
/
t
r
u
e
n
u
l
l
=
=
f
a
l
s
e
/
/
t
r
u
e
1
2
3
=
=
'
1
2
3
'
/
/
t
r
u
e
/
/
哈
希
比
较
"
0
e
1
3
2
4
5
6
7
8
9
"
=
=
"
0
e
7
1
2
4
5
1
1
4
5
1
1
5
5
"
/
/
t
r
u
e
"
0
e
1
2
3
4
5
6
a
b
c
"
=
=
"
0
e
1
d
d
d
a
d
a
"
/
/
f
a
l
s
e
"
0
e
1
a
b
c
"
=
=
"
0
"
/
/
t
r
u
e
"
0
x
1
e
2
4
0
"
=
=
"
1
2
3
4
5
6
"
/
/
t
r
u
e
"
0
x
1
e
2
4
0
"
=
=
1
2
3
4
5
6
/
/
t
r
u
e
v
a
r
_
d
u
m
p
(
i
n
t
v
a
l
(
'
2
'
)
)
/
/
2
v
a
r
_
d
u
m
p
(
i
n
t
v
a
l
(
'
3
a
b
c
d
'
)
)
/
/
3
v
a
r
_
d
u
m
p
(
i
n
t
v
a
l
(
'
a
b
c
d
'
)
)
/
/
0
/
/
任
意
两
个
a
r
r
a
y
,
M
D
5
相
等
v
a
r
_
d
u
m
p
(
m
d
5
(
$
a
r
r
a
y
1
)
=
=
v
a
r
_
d
u
m
p
(
$
a
r
r
a
y
2
)
)
;
/
/
t
r
u
e
/
/
c
a
s
e
自
转
换
,
以
下
代
码
输
出
i
i
s
l
e
s
s
t
h
a
n
3
b
u
t
n
o
t
n
e
g
a
t
i
v
e
$
i
=
"
2
a
b
c
"
;
s
w
i
t
c
h
(
$
i
)
{
c
a
s
e
0
:
c
a
s
e
1
:
c
a
s
e
2
:
e
c
h
o
"
i
i
s
l
e
s
s
t
h
a
n
3
b
u
t
n
o
t
n
e
g
a
t
i
v
e
"
;
b
r
e
a
k
;
c
a
s
e
3
:
e
c
h
o
"
i
i
s
3
"
;
}
/
/
i
n
_
a
r
r
a
y
的
缺
陷
,
a
r
r
a
y
_
s
e
a
r
c
h
$
a
r
r
a
y
=
[
0
,
1
,
2
,
'
3
'
]
;
v
a
r
_
d
u
m
p
(
i
n
_
a
r
r
a
y
(
'
a
b
c
'
,
$
a
r
r
a
y
)
)
;
/
/
t
r
u
e
v
a
r
_
d
u
m
p
(
i
n
_
a
r
r
a
y
(
'
1
b
c
'
,
$
a
r
r
a
y
)
)
;
/
/
t
r
u
e
/
/
s
t
r
c
m
p
在
p
h
p
5
.
x
个
版
本
后
有
些
特
性
不
太
同
,
所
以
遇
到
的
时
候
具
体
讨
论
i
f
(
a
u
t
h
e
n
t
i
c
a
t
e
d
_
u
s
e
r
(
)
)
{
$
a
u
t
h
o
r
i
z
e
d
=
t
r
u
e
;
}
i
f
(
$
a
u
t
h
o
r
i
z
e
d
)
{
d
o
s
o
m
e
t
h
i
n
g
.
.
.
.
.
.
}
对
于
以
上
的
绕
过
,
我
们
可
以
有
以
下
的
规
避
措
施
:
(
1
)
p
h
p
.
i
n
i
r
e
g
i
s
t
e
r
_
g
l
o
b
a
l
s
=
o
f
f
(
2
)
在
每
次
判
断
前
初
始
化
变
量
,
如
下
:
p
h
p
伪
协
议
伪
协
议
伪
协
议
在
很
多
绕
过
场
景
下
发
挥
着
举
足
轻
重
的
作
用
,
如
后
面
提
到
的
文
件
包
含
f
i
l
e
:
/
/
协
议
绕
过
,
以
及
最
近
才
提
出
的
p
h
a
r
协
议
反
序
列
化
对
象
注
入
,
我
们
可
以
在
不
存
在
可
控
u
n
s
e
r
i
a
l
i
z
a
t
i
o
n
(
)
函
数
的
情
况
下
利
用
p
h
a
r
反
序
列
化
对
象
,
实
现
对
象
注
入
。
所
以
在
w
e
b
应
用
中
不
要
忽
视
他
们
的
存
在
,
千
里
之
堤
,
溃
于
蚁
穴
。
向
向
D
V
W
A
学
习
学
习
p
h
p
安
全
的
代
码
编
写
安
全
的
代
码
编
写
以
下
样
例
来
自
于
D
V
W
A
v
1
.
9
版
本
s
q
l
注
入
注
入
L
o
w
l
e
v
e
l
在
这
个
例
子
中
,
是
最
l
o
w
安
全
等
级
的
p
h
p
代
码
编
写
样
例
,
可
以
看
到
,
代
码
中
并
没
有
对
用
户
输
入
的
i
d
变
量
进
行
检
查
和
过
滤
,
同
时
使
用
的
是
$
_
R
E
Q
U
E
S
T
全
局
数
组
的
方
式
,
如
果
不
是
特
别
需
要
,
我
们
编
程
的
时
候
尽
量
不
要
使
用
$
_
R
E
Q
U
E
S
T
获
$
a
u
t
h
o
r
i
z
e
d
=
f
a
l
s
e
;
i
f
(
a
u
t
h
e
n
t
i
c
a
t
e
d
_
u
s
e
r
(
)
)
{
$
a
u
t
h
o
r
i
z
e
d
=
t
r
u
e
;
}
i
f
(
$
a
u
t
h
o
r
i
z
e
d
)
{
d
o
s
o
m
e
t
h
i
n
g
.
.
.
.
.
.
}
f
i
l
e
:
/
/
/
v
a
r
/
w
w
w
/
h
t
m
l
访
问
本
地
文
件
系
统
f
t
p
:
/
/
<
l
o
g
i
n
>
:
<
p
a
s
s
w
o
r
d
>
@
<
f
t
p
s
e
r
v
e
r
a
d
d
r
e
s
s
>
访
问
F
T
P
(
s
)
U
R
L
s
d
a
t
a
:
/
/
数
据
流
h
t
t
p
:
/
/
—
访
问
H
T
T
P
(
s
)
U
R
L
s
f
t
p
:
/
/
—
访
问
F
T
P
(
s
)
U
R
L
s
p
h
p
:
/
/
—
访
问
各
个
输
入
/
输
出
流
z
l
i
b
:
/
/
—
压
缩
流
d
a
t
a
:
/
/
—
D
a
t
a
(
R
F
C
2
3
9
7
)
g
l
o
b
:
/
/
—
查
找
匹
配
的
文
件
路
径
模
式
p
h
a
r
:
/
/
—
P
H
P
A
r
c
h
i
v
e
s
s
h
2
:
/
/
—
S
e
c
u
r
e
S
h
e
l
l
2
r
a
r
:
/
/
—
R
A
R
o
g
g
:
/
/
—
A
u
d
i
o
s
t
r
e
a
m
s
e
x
p
e
c
t
:
/
/
—
处
理
交
互
式
的
流
<
?
p
h
p
i
f
(
i
s
s
e
t
(
$
_
R
E
Q
U
E
S
T
[
'
S
u
b
m
i
t
'
]
)
)
{
/
/
G
e
t
i
n
p
u
t
$
i
d
=
$
_
R
E
Q
U
E
S
T
[
'
i
d
'
]
;
/
/
C
h
e
c
k
d
a
t
a
b
a
s
e
$
q
u
e
r
y
=
"
S
E
L
E
C
T
f
i
r
s
t
_
n
a
m
e
,
l
a
s
t
_
n
a
m
e
F
R
O
M
u
s
e
r
s
W
H
E
R
E
u
s
e
r
_
i
d
=
'
$
i
d
'
;
"
;
$
r
e
s
u
l
t
=
m
y
s
q
l
_
q
u
e
r
y
(
$
q
u
e
r
y
)
o
r
d
i
e
(
'
<
p
r
e
>
'
.
m
y
s
q
l
_
e
r
r
o
r
(
)
.
'
<
/
p
r
e
>
'
)
;
/
/
G
e
t
r
e
s
u
l
t
s
$
n
u
m
=
m
y
s
q
l
_
n
u
m
r
o
w
s
(
$
r
e
s
u
l
t
)
;
$
i
=
0
;
w
h
i
l
e
(
$
i
<
$
n
u
m
)
{
/
/
G
e
t
v
a
l
u
e
s
$
f
i
r
s
t
=
m
y
s
q
l
_
r
e
s
u
l
t
(
$
r
e
s
u
l
t
,
$
i
,
"
f
i
r
s
t
_
n
a
m
e
"
)
;
$
l
a
s
t
=
m
y
s
q
l
_
r
e
s
u
l
t
(
$
r
e
s
u
l
t
,
$
i
,
"
l
a
s
t
_
n
a
m
e
"
)
;
/
/
F
e
e
d
b
a
c
k
f
o
r
e
n
d
u
s
e
r
e
c
h
o
"
<
p
r
e
>
I
D
:
{
$
i
d
}
<
b
r
/
>
F
i
r
s
t
n
a
m
e
:
{
$
f
i
r
s
t
}
<
b
r
/
>
S
u
r
n
a
m
e
:
{
$
l
a
s
t
}
<
/
p
r
e
>
"
;
/
/
I
n
c
r
e
a
s
e
l
o
o
p
c
o
u
n
t
$
i
+
+
;
}
m
y
s
q
l
_
c
l
o
s
e
(
)
;
}
?
>
取
用
户
的
参
数
,
因
为
$
_
R
E
Q
U
E
S
T
的
参
数
比
较
杂
,
包
括
$
_
G
E
T
,
$
_
P
O
S
T
,
$
_
C
O
O
K
I
E
等
超
全
局
变
量
,
并
且
二
者
还
存
在
变
量
获
取
顺
序
的
不
一
致
,
受
配
置
文
件
中
v
a
r
i
a
b
l
e
s
_
o
r
d
e
r
的
约
定
,
在
存
在
w
a
f
的
环
境
下
,
容
易
造
成
绕
过
。
未
经
处
理
的
用
户
输
入
直
接
与
s
q
l
语
句
拼
接
交
互
,
造
成
s
q
l
注
入
漏
洞
,
十
分
危
险
。
M
e
d
i
u
m
l
e
v
e
l
这
个
版
本
的
代
码
,
与
之
前
的
相
比
只
是
多
了
个
m
y
s
q
l
_
r
e
a
l
_
e
s
c
a
p
e
_
s
t
r
i
n
g
函
数
的
过
滤
,
但
是
要
知
道
这
里
的
$
i
d
在
s
q
l
语
句
中
是
数
字
类
型
,
这
样
m
y
s
q
l
_
r
e
a
l
_
e
s
c
a
p
e
_
s
t
r
i
n
g
的
转
义
就
会
形
同
虚
设
,
注
入
仍
旧
是
一
马
平
川
。
当
然
不
恰
当
的
字
符
编
码
,
可
能
会
造
成
宽
字
节
注
入
。
H
i
g
h
l
e
v
a
l
在
高
级
版
本
中
只
是
把
注
入
点
隐
匿
在
_
P
O
S
T
全
局
变
量
传
入
,
所
以
是
完
全
可
控
的
,
这
样
一
来
,
就
和
之
前
的
注
入
没
有
什
么
不
一
样
。
这
段
代
码
是
要
提
醒
我
们
对
于
s
e
s
s
i
o
n
,
只
要
注
册
值
是
用
户
可
控
的
,
也
是
可
能
存
在
s
q
l
注
入
的
风
险
的
。
另
外
需
要
注
意
到
的
是
,
在
这
个
H
i
g
h
级
别
的
注
入
中
,
回
显
和
传
参
页
面
不
是
同
一
个
,
是
一
个
二
阶
注
入
,
如
果
使
用
工
具
注
入
,
如
s
q
l
m
a
p
,
别
忘
了
加
上
自
定
义
回
显
—
s
e
c
o
n
d
-
o
r
d
e
r
参
数
。
<
?
p
h
p
i
f
(
i
s
s
e
t
(
$
_
P
O
S
T
[
'
S
u
b
m
i
t
'
]
)
)
{
/
/
G
e
t
i
n
p
u
t
$
i
d
=
$
_
P
O
S
T
[
'
i
d
'
]
;
$
i
d
=
m
y
s
q
l
_
r
e
a
l
_
e
s
c
a
p
e
_
s
t
r
i
n
g
(
$
i
d
)
;
/
/
C
h
e
c
k
d
a
t
a
b
a
s
e
$
q
u
e
r
y
=
"
S
E
L
E
C
T
f
i
r
s
t
_
n
a
m
e
,
l
a
s
t
_
n
a
m
e
F
R
O
M
u
s
e
r
s
W
H
E
R
E
u
s
e
r
_
i
d
=
$
i
d
;
"
;
$
r
e
s
u
l
t
=
m
y
s
q
l
_
q
u
e
r
y
(
$
q
u
e
r
y
)
o
r
d
i
e
(
'
<
p
r
e
>
'
.
m
y
s
q
l
_
e
r
r
o
r
(
)
.
'
<
/
p
r
e
>
'
)
;
/
/
G
e
t
r
e
s
u
l
t
s
$
n
u
m
=
m
y
s
q
l
_
n
u
m
r
o
w
s
(
$
r
e
s
u
l
t
)
;
$
i
=
0
;
w
h
i
l
e
(
$
i
<
$
n
u
m
)
{
/
/
D
i
s
p
l
a
y
v
a
l
u
e
s
$
f
i
r
s
t
=
m
y
s
q
l
_
r
e
s
u
l
t
(
$
r
e
s
u
l
t
,
$
i
,
"
f
i
r
s
t
_
n
a
m
e
"
)
;
$
l
a
s
t
=
m
y
s
q
l
_
r
e
s
u
l
t
(
$
r
e
s
u
l
t
,
$
i
,
"
l
a
s
t
_
n
a
m
e
"
)
;
/
/
F
e
e
d
b
a
c
k
f
o
r
e
n
d
u
s
e
r
e
c
h
o
"
<
p
r
e
>
I
D
:
{
$
i
d
}
<
b
r
/
>
F
i
r
s
t
n
a
m
e
:
{
$
f
i
r
s
t
}
<
b
r
/
>
S
u
r
n
a
m
e
:
{
$
l
a
s
t
}
<
/
p
r
e
>
"
;
/
/
I
n
c
r
e
a
s
e
l
o
o
p
c
o
u
n
t
$
i
+
+
;
}
/
/
m
y
s
q
l
_
c
l
o
s
e
(
)
;
}
?
>
<
?
p
h
p
i
f
(
i
s
s
e
t
(
$
_
S
E
S
S
I
O
N
[
'
i
d
'
]
)
)
{
/
/
G
e
t
i
n
p
u
t
$
i
d
=
$
_
S
E
S
S
I
O
N
[
'
i
d
'
]
;
/
/
C
h
e
c
k
d
a
t
a
b
a
s
e
$
q
u
e
r
y
=
"
S
E
L
E
C
T
f
i
r
s
t
_
n
a
m
e
,
l
a
s
t
_
n
a
m
e
F
R
O
M
u
s
e
r
s
W
H
E
R
E
u
s
e
r
_
i
d
=
'
$
i
d
'
L
I
M
I
T
1
;
"
;
$
r
e
s
u
l
t
=
m
y
s
q
l
_
q
u
e
r
y
(
$
q
u
e
r
y
)
o
r
d
i
e
(
'
<
p
r
e
>
S
o
m
e
t
h
i
n
g
w
e
n
t
w
r
o
n
g
.
<
/
p
r
e
>
'
)
;
/
/
G
e
t
r
e
s
u
l
t
s
$
n
u
m
=
m
y
s
q
l
_
n
u
m
r
o
w
s
(
$
r
e
s
u
l
t
)
;
$
i
=
0
;
w
h
i
l
e
(
$
i
<
$
n
u
m
)
{
/
/
G
e
t
v
a
l
u
e
s
$
f
i
r
s
t
=
m
y
s
q
l
_
r
e
s
u
l
t
(
$
r
e
s
u
l
t
,
$
i
,
"
f
i
r
s
t
_
n
a
m
e
"
)
;
$
l
a
s
t
=
m
y
s
q
l
_
r
e
s
u
l
t
(
$
r
e
s
u
l
t
,
$
i
,
"
l
a
s
t
_
n
a
m
e
"
)
;
/
/
F
e
e
d
b
a
c
k
f
o
r
e
n
d
u
s
e
r
e
c
h
o
"
<
p
r
e
>
I
D
:
{
$
i
d
}
<
b
r
/
>
F
i
r
s
t
n
a
m
e
:
{
$
f
i
r
s
t
}
<
b
r
/
>
S
u
r
n
a
m
e
:
{
$
l
a
s
t
}
<
/
p
r
e
>
"
;
/
/
I
n
c
r
e
a
s
e
l
o
o
p
c
o
u
n
t
$
i
+
+
;
}
m
y
s
q
l
_
c
l
o
s
e
(
)
;
}
?
>
I
m
p
o
s
s
i
b
l
e
l
e
v
e
l
根
据
D
V
W
A
的
说
法
,
这
样
写
出
来
的
应
用
,
是
不
存
在
s
q
l
注
入
的
。
也
即
这
是
个
十
分
安
全
的
p
h
p
代
码
编
写
规
范
。
w
h
y
?
首
先
,
我
们
可
以
看
到
它
使
用
A
n
t
i
-
C
S
R
F
t
o
k
e
n
的
方
法
来
避
免
c
s
r
f
攻
击
(
具
体
细
节
会
在
下
文
c
s
r
f
防
御
谈
到
)
,
然
后
在
s
q
l
语
句
的
编
写
中
,
使
用
的
是
预
处
理
语
句
,
所
谓
的
预
处
理
就
是
通
过
p
h
p
的
p
d
o
预
处
理
机
制
P
D
O
:
:
p
r
e
p
a
r
e
,
先
往
数
据
库
送
出
语
句
模
板
,
进
行
解
析
,
编
译
,
然
后
第
二
次
向
数
据
库
传
入
查
询
参
数
,
在
第
二
次
的
查
询
过
程
中
可
以
理
解
为
不
再
进
行
语
义
解
析
,
所
以
即
使
传
入
s
q
l
语
句
,
也
会
因
为
不
进
行
语
义
解
析
而
失
效
。
所
以
这
是
一
种
比
较
推
荐
的
数
据
库
交
互
s
q
l
语
句
编
写
规
范
。
现
在
很
多
主
流
的
数
据
库
已
经
支
持
预
处
理
,
即
使
不
支
持
,
P
H
P
的
P
D
O
也
会
进
行
预
处
理
模
拟
实
现
,
这
样
对
于
程
序
员
接
口
一
致
,
不
需
了
解
不
同
数
据
库
对
预
处
理
支
持
的
方
式
差
异
。
更
多
P
D
O
细
节
可
以
参
考
官
网
:
h
t
t
p
:
/
/
p
h
p
.
n
e
t
/
m
a
n
u
a
l
/
z
h
/
p
d
o
.
p
r
e
p
a
r
e
d
-
s
t
a
t
e
m
e
n
t
s
.
p
h
p
。
参
数
b
i
n
d
的
细
节
可
以
参
考
:
h
t
t
p
:
/
/
p
h
p
.
n
e
t
/
m
a
n
u
a
l
/
z
h
/
p
d
o
.
c
o
n
s
t
a
n
t
s
.
p
h
p
。
C
S
R
F
完
整
的
攻
击
过
程
,
可
以
看
这
篇
前
辈
的
文
章
:
h
t
t
p
:
/
/
w
w
w
.
f
r
e
e
b
u
f
.
c
o
m
/
a
r
t
i
c
l
e
s
/
w
e
b
/
1
1
8
3
5
2
.
h
t
m
l
。
L
o
w
l
e
v
e
l
<
?
p
h
p
i
f
(
i
s
s
e
t
(
$
_
G
E
T
[
'
S
u
b
m
i
t
'
]
)
)
{
/
/
C
h
e
c
k
A
n
t
i
-
C
S
R
F
t
o
k
e
n
c
h
e
c
k
T
o
k
e
n
(
$
_
R
E
Q
U
E
S
T
[
'
u
s
e
r
_
t
o
k
e
n
'
]
,
$
_
S
E
S
S
I
O
N
[
'
s
e
s
s
i
o
n
_
t
o
k
e
n
'
]
,
'
i
n
d
e
x
.
p
h
p
'
)
;
/
/
G
e
t
i
n
p
u
t
$
i
d
=
$
_
G
E
T
[
'
i
d
'
]
;
/
/
W
a
s
a
n
u
m
b
e
r
e
n
t
e
r
e
d
?
i
f
(
i
s
_
n
u
m
e
r
i
c
(
$
i
d
)
)
{
/
/
C
h
e
c
k
t
h
e
d
a
t
a
b
a
s
e
$
d
a
t
a
=
$
d
b
-
>
p
r
e
p
a
r
e
(
'
S
E
L
E
C
T
f
i
r
s
t
_
n
a
m
e
,
l
a
s
t
_
n
a
m
e
F
R
O
M
u
s
e
r
s
W
H
E
R
E
u
s
e
r
_
i
d
=
(
:
i
d
)
L
I
M
I
T
1
;
'
)
;
$
d
a
t
a
-
>
b
i
n
d
P
a
r
a
m
(
'
:
i
d
'
,
$
i
d
,
P
D
O
:
:
P
A
R
A
M
_
I
N
T
)
;
$
d
a
t
a
-
>
e
x
e
c
u
t
e
(
)
;
$
r
o
w
=
$
d
a
t
a
-
>
f
e
t
c
h
(
)
;
/
/
M
a
k
e
s
u
r
e
o
n
l
y
1
r
e
s
u
l
t
i
s
r
e
t
u
r
n
e
d
i
f
(
$
d
a
t
a
-
>
r
o
w
C
o
u
n
t
(
)
=
=
1
)
{
/
/
G
e
t
v
a
l
u
e
s
$
f
i
r
s
t
=
$
r
o
w
[
'
f
i
r
s
t
_
n
a
m
e
'
]
;
$
l
a
s
t
=
$
r
o
w
[
'
l
a
s
t
_
n
a
m
e
'
]
;
/
/
F
e
e
d
b
a
c
k
f
o
r
e
n
d
u
s
e
r
e
c
h
o
"
<
p
r
e
>
I
D
:
{
$
i
d
}
<
b
r
/
>
F
i
r
s
t
n
a
m
e
:
{
$
f
i
r
s
t
}
<
b
r
/
>
S
u
r
n
a
m
e
:
{
$
l
a
s
t
}
<
/
p
r
e
>
"
;
}
}
}
/
/
G
e
n
e
r
a
t
e
A
n
t
i
-
C
S
R
F
t
o
k
e
n
g
e
n
e
r
a
t
e
S
e
s
s
i
o
n
T
o
k
e
n
(
)
;
?
>
所
谓
的
C
S
R
F
(
C
r
o
s
s
-
s
i
t
e
r
e
q
u
e
s
t
f
o
r
g
e
r
y
)
直
白
的
翻
译
就
是
跨
站
点
请
求
伪
造
。
说
人
话
就
是
攻
击
者
通
过
诱
使
v
i
c
t
i
m
访
问
其
精
心
构
造
的
u
r
l
或
者
访
问
其
精
心
构
造
的
页
面
,
来
使
得
攻
击
者
可
以
以
v
i
c
t
i
m
的
身
份
做
诸
如
发
邮
件
,
发
消
息
,
改
密
码
等
骚
操
作
。
在
D
V
W
A
这
个
系
列
里
面
,
模
拟
的
是
修
改
密
码
的
界
面
。
先
来
看
下
l
o
w
等
级
的
代
码
,
可
以
说
是
没
有
进
行
仍
和
的
再
认
证
,
试
下
为
啥
是
“
再
认
证
”
?
其
实
我
们
在
访
问
到
这
个
修
改
密
码
界
面
的
时
候
,
已
经
登
陆
过
一
次
,
服
务
器
会
在
每
次
访
问
时
检
查
s
e
s
s
i
o
n
。
所
以
这
是
第
一
道
认
证
。
但
是
这
种
会
话
级
别
的
认
证
对
c
s
r
f
是
没
有
抵
抗
力
的
。
具
体
的
过
程
可
以
参
看
之
前
提
到
的
链
接
。
我
们
可
以
直
接
构
造
u
r
l
:
h
t
t
p
:
/
/
l
o
c
a
l
h
o
s
t
/
d
v
w
a
/
v
u
l
n
e
r
a
b
i
l
i
t
i
e
s
/
c
s
r
f
/
?
p
a
s
s
w
o
r
d
_
n
e
w
=
p
a
s
s
w
o
r
d
&
p
a
s
s
w
o
r
d
_
c
o
n
f
=
p
a
s
s
w
o
r
d
&
C
h
a
n
g
e
=
C
h
a
n
g
e
#
。
让
v
i
c
t
i
m
访
问
,
或
者
使
用
更
加
隐
匿
的
:
构
造
无
迹
表
单
,
结
合
j
s
发
送
请
求
,
或
者
:
来
实
现
欺
骗
隐
匿
行
踪
,
达
到
修
改
密
码
的
目
的
。
顺
便
盗
用
两
个
别
人
的
p
o
c
方
便
展
示
:
(
1
)
图
片
形
式
诱
导
(
2
)
隐
藏
表
单
的
形
式
<
?
p
h
p
i
f
(
i
s
s
e
t
(
$
_
G
E
T
[
'
C
h
a
n
g
e
'
]
)
)
{
/
/
G
e
t
i
n
p
u
t
$
p
a
s
s
_
n
e
w
=
$
_
G
E
T
[
'
p
a
s
s
w
o
r
d
_
n
e
w
'
]
;
$
p
a
s
s
_
c
o
n
f
=
$
_
G
E
T
[
'
p
a
s
s
w
o
r
d
_
c
o
n
f
'
]
;
/
/
D
o
t
h
e
p
a
s
s
w
o
r
d
s
m
a
t
c
h
?
i
f
(
$
p
a
s
s
_
n
e
w
=
=
$
p
a
s
s
_
c
o
n
f
)
{
/
/
T
h
e
y
d
o
!
$
p
a
s
s
_
n
e
w
=
m
y
s
q
l
_
r
e
a
l
_
e
s
c
a
p
e
_
s
t
r
i
n
g
(
$
p
a
s
s
_
n
e
w
)
;
$
p
a
s
s
_
n
e
w
=
m
d
5
(
$
p
a
s
s
_
n
e
w
)
;
/
/
U
p
d
a
t
e
t
h
e
d
a
t
a
b
a
s
e
$
i
n
s
e
r
t
=
"
U
P
D
A
T
E
`
u
s
e
r
s
`
S
E
T
p
a
s
s
w
o
r
d
=
'
$
p
a
s
s
_
n
e
w
'
W
H
E
R
E
u
s
e
r
=
'
"
.
d
v
w
a
C
u
r
r
e
n
t
U
s
e
r
(
)
.
"
'
;
"
;
$
r
e
s
u
l
t
=
m
y
s
q
l
_
q
u
e
r
y
(
$
i
n
s
e
r
t
)
o
r
d
i
e
(
'
<
p
r
e
>
'
.
m
y
s
q
l
_
e
r
r
o
r
(
)
.
'
<
/
p
r
e
>
'
)
;
/
/
F
e
e
d
b
a
c
k
f
o
r
t
h
e
u
s
e
r
e
c
h
o
"
<
p
r
e
>
P
a
s
s
w
o
r
d
C
h
a
n
g
e
d
.
<
/
p
r
e
>
"
;
}
e
l
s
e
{
/
/
I
s
s
u
e
w
i
t
h
p
a
s
s
w
o
r
d
s
m
a
t
c
h
i
n
g
e
c
h
o
"
<
p
r
e
>
P
a
s
s
w
o
r
d
s
d
i
d
n
o
t
m
a
t
c
h
.
<
/
p
r
e
>
"
;
}
m
y
s
q
l
_
c
l
o
s
e
(
)
;
}
?
>
<
s
t
y
l
e
>
f
o
r
m
{
d
i
s
p
l
a
y
:
n
o
n
e
;
}
<
/
s
t
y
l
e
>
<
i
m
g
s
r
c
=
"
h
t
t
p
:
/
/
1
9
2
.
1
6
8
.
1
5
3
.
1
3
0
/
d
v
w
a
/
v
u
l
n
e
r
a
b
i
l
i
t
i
e
s
/
c
s
r
f
/
?
p
a
s
s
w
o
r
d
_
n
e
w
=
h
a
c
k
&
p
a
s
s
w
o
r
d
_
c
o
n
f
=
h
a
c
k
&
C
h
a
n
g
e
=
C
h
a
n
g
e
#
"
b
o
r
d
e
r
=
"
0
"
s
t
y
l
e
=
"
d
i
s
p
l
a
y
:
n
o
n
e
;
"
/
>
<
i
m
g
s
r
c
=
"
h
t
t
p
:
/
/
1
9
2
.
1
6
8
.
1
5
3
.
1
3
0
/
d
v
w
a
/
v
u
l
n
e
r
a
b
i
l
i
t
i
e
s
/
c
s
r
f
/
?
p
a
s
s
w
o
r
d
_
n
e
w
=
h
a
c
k
&
p
a
s
s
w
o
r
d
_
c
o
n
f
=
h
a
c
k
&
C
h
a
n
g
e
=
C
h
a
n
g
e
#
"
b
o
r
d
e
r
=
"
0
"
s
t
y
l
e
=
"
d
i
s
p
l
a
y
:
n
o
n
e
;
"
/
>
<
h
1
>
4
0
4
<
h
1
>
<
h
2
>
f
i
l
e
n
o
t
f
o
u
n
d
.
<
h
2
>
M
e
d
i
u
m
l
e
v
e
l
在
这
个
级
别
的
C
S
R
F
漏
洞
中
,
服
务
端
多
了
一
句
e
r
e
g
i
(
$
_
S
E
R
V
E
R
[
‘
S
E
R
V
E
R
_
N
A
M
E
’
]
,
$
_
S
E
R
V
E
R
[
‘
H
T
T
P
_
R
E
F
E
R
E
R
’
]
校
验
,
e
r
e
g
(
)
函
数
是
模
式
匹
配
,
通
过
超
全
局
数
组
获
取
了
请
求
头
r
e
f
e
r
e
r
值
(
也
就
是
访
问
者
向
h
o
s
t
发
起
请
求
时
所
在
的
页
面
)
和
h
o
s
t
值
,
并
且
检
查
h
o
s
t
的
值
是
否
在
r
e
f
e
r
e
r
中
出
现
。
根
据
权
威
(
h
t
t
p
s
:
/
/
d
e
v
e
l
o
p
e
r
.
m
o
z
i
l
l
a
.
o
r
g
/
e
n
-
U
S
/
d
o
c
s
/
G
l
o
s
s
a
r
y
/
F
o
r
b
i
d
d
e
n
_
h
e
a
d
e
r
_
n
a
m
e
)
,
这
两
个
值
无
法
以
编
程
的
方
式
修
改
,
抓
包
除
外
,
因
为
在
c
s
r
f
中
无
法
通
过
抓
取
客
户
端
的
包
进
行
修
改
,
所
以
按
理
来
说
是
安
全
的
。
实
则
不
然
,
通
过
公
网
服
务
器
,
诱
使
v
i
c
t
i
m
访
问
名
字
包
含
h
o
s
t
的
h
t
m
l
文
件
就
可
以
实
现
绕
过
。
H
i
g
h
l
e
v
e
l
<
b
o
d
y
o
n
l
o
a
d
=
"
j
a
v
a
s
c
r
i
p
t
:
c
s
r
f
(
)
"
>
<
s
c
r
i
p
t
>
f
u
n
c
t
i
o
n
c
s
r
f
(
)
{
d
o
c
u
m
e
n
t
.
g
e
t
E
l
e
m
e
n
t
B
y
I
d
(
"
b
u
t
t
o
n
"
)
.
c
l
i
c
k
(
)
;
}
<
/
s
c
r
i
p
t
>
<
s
t
y
l
e
>
f
o
r
m
{
d
i
s
p
l
a
y
:
n
o
n
e
;
}
<
/
s
t
y
l
e
>
<
f
o
r
m
a
c
t
i
o
n
=
"
h
t
t
p
:
/
/
w
w
w
.
d
v
w
a
.
c
o
m
/
v
u
l
n
e
r
a
b
i
l
i
t
i
e
s
/
c
s
r
f
/
?
"
m
e
t
h
o
d
=
"
G
E
T
"
>
N
e
w
p
a
s
s
w
o
r
d
:
<
b
r
/
>
<
i
n
p
u
t
t
y
p
e
=
"
p
a
s
s
w
o
r
d
"
A
U
T
O
C
O
M
P
L
E
T
E
=
"
o
f
f
"
n
a
m
e
=
"
p
a
s
s
w
o
r
d
_
n
e
w
"
v
a
l
u
e
=
"
t
e
s
t
"
>
<
b
r
/
>
C
o
n
f
i
r
m
n
e
w
p
a
s
s
w
o
r
d
:
<
b
r
/
>
<
i
n
p
u
t
t
y
p
e
=
"
p
a
s
s
w
o
r
d
"
A
U
T
O
C
O
M
P
L
E
T
E
=
"
o
f
f
"
n
a
m
e
=
"
p
a
s
s
w
o
r
d
_
c
o
n
f
"
v
a
l
u
e
=
"
t
e
s
t
"
>
<
b
r
/
>
<
b
r
/
>
<
i
n
p
u
t
t
y
p
e
=
"
s
u
b
m
i
t
"
i
d
=
"
b
u
t
t
o
n
"
n
a
m
e
=
"
C
h
a
n
g
e
"
v
a
l
u
e
=
"
C
h
a
n
g
e
"
/
>
<
/
f
o
r
m
>
<
/
b
o
d
y
>
<
?
p
h
p
i
f
(
i
s
s
e
t
(
$
_
G
E
T
[
'
C
h
a
n
g
e
'
]
)
)
{
/
/
C
h
e
c
k
s
t
o
s
e
e
w
h
e
r
e
t
h
e
r
e
q
u
e
s
t
c
a
m
e
f
r
o
m
i
f
(
e
r
e
g
i
(
$
_
S
E
R
V
E
R
[
'
S
E
R
V
E
R
_
N
A
M
E
'
]
,
$
_
S
E
R
V
E
R
[
'
H
T
T
P
_
R
E
F
E
R
E
R
'
]
)
)
{
/
/
G
e
t
i
n
p
u
t
$
p
a
s
s
_
n
e
w
=
$
_
G
E
T
[
'
p
a
s
s
w
o
r
d
_
n
e
w
'
]
;
$
p
a
s
s
_
c
o
n
f
=
$
_
G
E
T
[
'
p
a
s
s
w
o
r
d
_
c
o
n
f
'
]
;
/
/
D
o
t
h
e
p
a
s
s
w
o
r
d
s
m
a
t
c
h
?
i
f
(
$
p
a
s
s
_
n
e
w
=
=
$
p
a
s
s
_
c
o
n
f
)
{
/
/
T
h
e
y
d
o
!
$
p
a
s
s
_
n
e
w
=
m
y
s
q
l
_
r
e
a
l
_
e
s
c
a
p
e
_
s
t
r
i
n
g
(
$
p
a
s
s
_
n
e
w
)
;
$
p
a
s
s
_
n
e
w
=
m
d
5
(
$
p
a
s
s
_
n
e
w
)
;
/
/
U
p
d
a
t
e
t
h
e
d
a
t
a
b
a
s
e
$
i
n
s
e
r
t
=
"
U
P
D
A
T
E
`
u
s
e
r
s
`
S
E
T
p
a
s
s
w
o
r
d
=
'
$
p
a
s
s
_
n
e
w
'
W
H
E
R
E
u
s
e
r
=
'
"
.
d
v
w
a
C
u
r
r
e
n
t
U
s
e
r
(
)
.
"
'
;
"
;
$
r
e
s
u
l
t
=
m
y
s
q
l
_
q
u
e
r
y
(
$
i
n
s
e
r
t
)
o
r
d
i
e
(
'
<
p
r
e
>
'
.
m
y
s
q
l
_
e
r
r
o
r
(
)
.
'
<
/
p
r
e
>
'
)
;
/
/
F
e
e
d
b
a
c
k
f
o
r
t
h
e
u
s
e
r
e
c
h
o
"
<
p
r
e
>
P
a
s
s
w
o
r
d
C
h
a
n
g
e
d
.
<
/
p
r
e
>
"
;
}
e
l
s
e
{
/
/
I
s
s
u
e
w
i
t
h
p
a
s
s
w
o
r
d
s
m
a
t
c
h
i
n
g
e
c
h
o
"
<
p
r
e
>
P
a
s
s
w
o
r
d
s
d
i
d
n
o
t
m
a
t
c
h
.
<
/
p
r
e
>
"
;
}
}
e
l
s
e
{
/
/
D
i
d
n
'
t
c
o
m
e
f
r
o
m
a
t
r
u
s
t
e
d
s
o
u
r
c
e
e
c
h
o
"
<
p
r
e
>
T
h
a
t
r
e
q
u
e
s
t
d
i
d
n
'
t
l
o
o
k
c
o
r
r
e
c
t
.
<
/
p
r
e
>
"
;
}
m
y
s
q
l
_
c
l
o
s
e
(
)
;
}
?
>
在
高
级
别
中
的
代
码
,
主
要
是
使
用
了
A
n
t
i
-
c
s
r
f
机
制
,
用
户
每
次
访
问
改
密
页
面
时
,
服
务
器
会
返
回
一
个
随
机
的
t
o
k
e
n
,
向
服
务
器
发
起
请
求
时
,
需
要
提
交
t
o
k
e
n
参
数
,
而
服
务
器
在
收
到
请
求
时
,
会
优
先
检
查
t
o
k
e
n
,
只
有
t
o
k
e
n
正
确
,
才
会
处
理
客
户
端
的
请
求
。
我
们
可
以
按
F
1
2
来
看
看
这
个
t
o
k
e
n
:
可
以
看
到
不
同
的
用
户
会
返
回
一
个
不
同
的
t
o
k
e
n
,
这
个
t
o
k
e
n
在
h
i
d
d
e
n
栏
里
面
,
这
样
一
来
,
迫
于
同
源
策
略
,
攻
击
者
无
法
获
取
v
i
c
t
i
m
的
t
o
k
e
n
,
也
就
无
法
实
现
C
S
R
F
攻
击
。
但
是
真
的
无
法
实
现
吗
?
配
合
x
s
s
我
们
还
是
可
以
盗
取
t
o
k
e
n
的
,
但
是
这
难
度
无
疑
增
大
,
我
们
必
须
要
有
服
务
器
的
一
个
x
s
s
漏
洞
来
盗
取
t
o
k
e
n
,
然
后
再
使
用
C
S
R
F
。
攻
击
成
本
也
增
大
。
I
m
p
o
s
s
i
b
l
e
l
e
v
e
l
<
?
p
h
p
i
f
(
i
s
s
e
t
(
$
_
G
E
T
[
'
C
h
a
n
g
e
'
]
)
)
{
/
/
C
h
e
c
k
A
n
t
i
-
C
S
R
F
t
o
k
e
n
c
h
e
c
k
T
o
k
e
n
(
$
_
R
E
Q
U
E
S
T
[
'
u
s
e
r
_
t
o
k
e
n
'
]
,
$
_
S
E
S
S
I
O
N
[
'
s
e
s
s
i
o
n
_
t
o
k
e
n
'
]
,
'
i
n
d
e
x
.
p
h
p
'
)
;
/
/
G
e
t
i
n
p
u
t
$
p
a
s
s
_
n
e
w
=
$
_
G
E
T
[
'
p
a
s
s
w
o
r
d
_
n
e
w
'
]
;
$
p
a
s
s
_
c
o
n
f
=
$
_
G
E
T
[
'
p
a
s
s
w
o
r
d
_
c
o
n
f
'
]
;
/
/
D
o
t
h
e
p
a
s
s
w
o
r
d
s
m
a
t
c
h
?
i
f
(
$
p
a
s
s
_
n
e
w
=
=
$
p
a
s
s
_
c
o
n
f
)
{
/
/
T
h
e
y
d
o
!
$
p
a
s
s
_
n
e
w
=
m
y
s
q
l
_
r
e
a
l
_
e
s
c
a
p
e
_
s
t
r
i
n
g
(
$
p
a
s
s
_
n
e
w
)
;
$
p
a
s
s
_
n
e
w
=
m
d
5
(
$
p
a
s
s
_
n
e
w
)
;
/
/
U
p
d
a
t
e
t
h
e
d
a
t
a
b
a
s
e
$
i
n
s
e
r
t
=
"
U
P
D
A
T
E
`
u
s
e
r
s
`
S
E
T
p
a
s
s
w
o
r
d
=
'
$
p
a
s
s
_
n
e
w
'
W
H
E
R
E
u
s
e
r
=
'
"
.
d
v
w
a
C
u
r
r
e
n
t
U
s
e
r
(
)
.
"
'
;
"
;
$
r
e
s
u
l
t
=
m
y
s
q
l
_
q
u
e
r
y
(
$
i
n
s
e
r
t
)
o
r
d
i
e
(
'
<
p
r
e
>
'
.
m
y
s
q
l
_
e
r
r
o
r
(
)
.
'
<
/
p
r
e
>
'
)
;
/
/
F
e
e
d
b
a
c
k
f
o
r
t
h
e
u
s
e
r
e
c
h
o
"
<
p
r
e
>
P
a
s
s
w
o
r
d
C
h
a
n
g
e
d
.
<
/
p
r
e
>
"
;
}
e
l
s
e
{
/
/
I
s
s
u
e
w
i
t
h
p
a
s
s
w
o
r
d
s
m
a
t
c
h
i
n
g
e
c
h
o
"
<
p
r
e
>
P
a
s
s
w
o
r
d
s
d
i
d
n
o
t
m
a
t
c
h
.
<
/
p
r
e
>
"
;
}
m
y
s
q
l
_
c
l
o
s
e
(
)
;
}
/
/
G
e
n
e
r
a
t
e
A
n
t
i
-
C
S
R
F
t
o
k
e
n
g
e
n
e
r
a
t
e
S
e
s
s
i
o
n
T
o
k
e
n
(
)
;
?
>
在
h
i
g
h
的
基
础
上
,
直
接
进
行
了
密
码
再
认
证
,
这
样
一
来
,
即
使
盗
取
了
t
o
k
e
n
,
没
有
原
始
密
码
,
也
无
法
进
行
修
改
密
码
的
操
作
,
这
样
C
S
R
F
就
可
以
完
全
避
免
了
。
所
以
通
过
这
个
C
S
R
F
系
列
,
我
们
可
以
知
晓
,
在
c
s
r
f
防
御
中
,
采
用
关
键
操
作
的
原
子
性
认
证
,
是
避
免
这
一
漏
洞
攻
击
的
不
二
办
法
。
其
实
我
们
只
关
注
了
C
S
R
F
部
分
,
在
之
前
的
l
e
v
e
l
中
,
也
还
存
在
了
s
q
l
注
入
,
在
这
个
i
m
p
o
s
s
i
b
l
e
版
本
里
,
还
使
用
了
之
前
提
到
的
预
操
纵
来
进
行
数
据
库
交
互
,
降
低
了
s
q
l
注
入
的
风
险
。
C
o
m
m
a
n
d
I
n
j
e
c
t
i
o
n
L
o
w
l
e
v
e
l
<
?
p
h
p
i
f
(
i
s
s
e
t
(
$
_
G
E
T
[
'
C
h
a
n
g
e
'
]
)
)
{
/
/
C
h
e
c
k
A
n
t
i
-
C
S
R
F
t
o
k
e
n
c
h
e
c
k
T
o
k
e
n
(
$
_
R
E
Q
U
E
S
T
[
'
u
s
e
r
_
t
o
k
e
n
'
]
,
$
_
S
E
S
S
I
O
N
[
'
s
e
s
s
i
o
n
_
t
o
k
e
n
'
]
,
'
i
n
d
e
x
.
p
h
p
'
)
;
/
/
G
e
t
i
n
p
u
t
$
p
a
s
s
_
c
u
r
r
=
$
_
G
E
T
[
'
p
a
s
s
w
o
r
d
_
c
u
r
r
e
n
t
'
]
;
$
p
a
s
s
_
n
e
w
=
$
_
G
E
T
[
'
p
a
s
s
w
o
r
d
_
n
e
w
'
]
;
$
p
a
s
s
_
c
o
n
f
=
$
_
G
E
T
[
'
p
a
s
s
w
o
r
d
_
c
o
n
f
'
]
;
/
/
S
a
n
i
t
i
s
e
c
u
r
r
e
n
t
p
a
s
s
w
o
r
d
i
n
p
u
t
$
p
a
s
s
_
c
u
r
r
=
s
t
r
i
p
s
l
a
s
h
e
s
(
$
p
a
s
s
_
c
u
r
r
)
;
$
p
a
s
s
_
c
u
r
r
=
m
y
s
q
l
_
r
e
a
l
_
e
s
c
a
p
e
_
s
t
r
i
n
g
(
$
p
a
s
s
_
c
u
r
r
)
;
$
p
a
s
s
_
c
u
r
r
=
m
d
5
(
$
p
a
s
s
_
c
u
r
r
)
;
/
/
C
h
e
c
k
t
h
a
t
t
h
e
c
u
r
r
e
n
t
p
a
s
s
w
o
r
d
i
s
c
o
r
r
e
c
t
$
d
a
t
a
=
$
d
b
-
>
p
r
e
p
a
r
e
(
'
S
E
L
E
C
T
p
a
s
s
w
o
r
d
F
R
O
M
u
s
e
r
s
W
H
E
R
E
u
s
e
r
=
(
:
u
s
e
r
)
A
N
D
p
a
s
s
w
o
r
d
=
(
:
p
a
s
s
w
o
r
d
)
L
I
M
I
T
1
;
'
)
;
$
d
a
t
a
-
>
b
i
n
d
P
a
r
a
m
(
'
:
u
s
e
r
'
,
d
v
w
a
C
u
r
r
e
n
t
U
s
e
r
(
)
,
P
D
O
:
:
P
A
R
A
M
_
S
T
R
)
;
$
d
a
t
a
-
>
b
i
n
d
P
a
r
a
m
(
'
:
p
a
s
s
w
o
r
d
'
,
$
p
a
s
s
_
c
u
r
r
,
P
D
O
:
:
P
A
R
A
M
_
S
T
R
)
;
$
d
a
t
a
-
>
e
x
e
c
u
t
e
(
)
;
/
/
D
o
b
o
t
h
n
e
w
p
a
s
s
w
o
r
d
s
m
a
t
c
h
a
n
d
d
o
e
s
t
h
e
c
u
r
r
e
n
t
p
a
s
s
w
o
r
d
m
a
t
c
h
t
h
e
u
s
e
r
?
i
f
(
(
$
p
a
s
s
_
n
e
w
=
=
$
p
a
s
s
_
c
o
n
f
)
&
&
(
$
d
a
t
a
-
>
r
o
w
C
o
u
n
t
(
)
=
=
1
)
)
{
/
/
I
t
d
o
e
s
!
$
p
a
s
s
_
n
e
w
=
s
t
r
i
p
s
l
a
s
h
e
s
(
$
p
a
s
s
_
n
e
w
)
;
$
p
a
s
s
_
n
e
w
=
m
y
s
q
l
_
r
e
a
l
_
e
s
c
a
p
e
_
s
t
r
i
n
g
(
$
p
a
s
s
_
n
e
w
)
;
$
p
a
s
s
_
n
e
w
=
m
d
5
(
$
p
a
s
s
_
n
e
w
)
;
/
/
U
p
d
a
t
e
d
a
t
a
b
a
s
e
w
i
t
h
n
e
w
p
a
s
s
w
o
r
d
$
d
a
t
a
=
$
d
b
-
>
p
r
e
p
a
r
e
(
'
U
P
D
A
T
E
u
s
e
r
s
S
E
T
p
a
s
s
w
o
r
d
=
(
:
p
a
s
s
w
o
r
d
)
W
H
E
R
E
u
s
e
r
=
(
:
u
s
e
r
)
;
'
)
;
$
d
a
t
a
-
>
b
i
n
d
P
a
r
a
m
(
'
:
p
a
s
s
w
o
r
d
'
,
$
p
a
s
s
_
n
e
w
,
P
D
O
:
:
P
A
R
A
M
_
S
T
R
)
;
$
d
a
t
a
-
>
b
i
n
d
P
a
r
a
m
(
'
:
u
s
e
r
'
,
d
v
w
a
C
u
r
r
e
n
t
U
s
e
r
(
)
,
P
D
O
:
:
P
A
R
A
M
_
S
T
R
)
;
$
d
a
t
a
-
>
e
x
e
c
u
t
e
(
)
;
/
/
F
e
e
d
b
a
c
k
f
o
r
t
h
e
u
s
e
r
e
c
h
o
"
<
p
r
e
>
P
a
s
s
w
o
r
d
C
h
a
n
g
e
d
.
<
/
p
r
e
>
"
;
}
e
l
s
e
{
/
/
I
s
s
u
e
w
i
t
h
p
a
s
s
w
o
r
d
s
m
a
t
c
h
i
n
g
e
c
h
o
"
<
p
r
e
>
P
a
s
s
w
o
r
d
s
d
i
d
n
o
t
m
a
t
c
h
o
r
c
u
r
r
e
n
t
p
a
s
s
w
o
r
d
i
n
c
o
r
r
e
c
t
.
<
/
p
r
e
>
"
;
}
}
/
/
G
e
n
e
r
a
t
e
A
n
t
i
-
C
S
R
F
t
o
k
e
n
g
e
n
e
r
a
t
e
S
e
s
s
i
o
n
T
o
k
e
n
(
)
;
?
>
<
?
p
h
p
i
f
(
i
s
s
e
t
(
$
_
P
O
S
T
[
'
S
u
b
m
i
t
'
]
)
)
{
/
/
G
e
t
i
n
p
u
t
$
t
a
r
g
e
t
=
$
_
R
E
Q
U
E
S
T
[
'
i
p
'
]
;
/
/
D
e
t
e
r
m
i
n
e
O
S
a
n
d
e
x
e
c
u
t
e
t
h
e
p
i
n
g
c
o
m
m
a
n
d
.
i
f
(
s
t
r
i
s
t
r
(
p
h
p
_
u
n
a
m
e
(
'
s
'
)
,
'
W
i
n
d
o
w
s
N
T
'
)
)
{
/
/
W
i
n
d
o
w
s
$
c
m
d
=
s
h
e
l
l
_
e
x
e
c
(
'
p
i
n
g
'
.
$
t
a
r
g
e
t
)
;
}
e
l
s
e
{
/
/
*
n
i
x
$
c
m
d
=
s
h
e
l
l
_
e
x
e
c
(
'
p
i
n
g
-
c
4
'
.
$
t
a
r
g
e
t
)
;
}
/
/
F
e
e
d
b
a
c
k
f
o
r
t
h
e
e
n
d
u
s
e
r
e
c
h
o
"
<
p
r
e
>
{
$
c
m
d
}
<
/
p
r
e
>
"
;
}
?
>
回复
举报
上一个主题
下一个主题
高级模式
B
Color
Image
Link
Quote
Code
Smilies
您需要登录后才可以回帖
登录
|
立即注册
本版积分规则
发表回复
!disable!!post_parseurl!
使用Markdown编辑器编辑
使用富文本编辑器编辑
回帖后跳转到最后一页