论坛
BBS
空间测绘
发表
发布文章
提问答疑
搜索
您还未登录
登录后即可体验更多功能
立即登录
我的收藏
提问答疑
我要投稿
云安全
[24121] 2015-07-23_PHP安全编程建议
文档创建者:
s7ckTeam
浏览次数:
3
最后更新:
2025-01-18
云安全
3 人阅读
|
0 人回复
s7ckTeam
s7ckTeam
当前离线
积分
-54
6万
主题
-6万
回帖
-54
积分
管理员
积分
-54
发消息
2015-07-23_PHP安全编程建议
P
H
P
安
全
编
程
建
议
原
创
i
c
t
l
y
h
L
i
n
u
x
中
国
2
0
1
5
-
0
7
-
2
3
简
介
要
提
供
互
联
网
服
务
,
当
你
在
开
发
代
码
的
时
候
必
须
时
刻
保
持
安
全
意
识
。
可
能
大
部
分
P
H
P
脚
本
都
对
安
全
问
题
都
不
在
意
,
这
很
大
程
度
上
是
因
为
有
大
量
的
无
经
验
程
序
员
在
使
用
这
门
语
言
。
但
是
,
没
有
理
由
让
你
因
为
对
你
的
代
码
的
不
确
定
性
而
导
致
不
一
致
的
安
全
策
略
。
当
你
在
服
务
器
上
放
任
何
涉
及
到
钱
的
东
西
时
,
就
有
可
能
会
有
人
尝
试
破
解
它
。
创
建
一
个
论
坛
程
序
或
者
任
何
形
式
的
购
物
车
,
被
攻
击
的
可
能
性
就
上
升
到
了
无
穷
大
。
背
景
为
了
确
保
你
的
w
e
b
内
容
安
全
,
这
里
有
一
些
常
规
的
安
全
准
则
:
别
相
信
表
单
攻
击
表
单
很
简
单
。
通
过
使
用
一
个
简
单
的
J
a
v
a
S
c
r
i
p
t
技
巧
,
你
可
以
限
制
你
的
表
单
只
允
许
在
评
分
域
中
填
写
1
到
5
的
数
字
。
如
果
有
人
关
闭
了
他
们
浏
览
器
的
J
a
v
a
S
c
r
i
p
t
功
能
或
者
提
交
自
定
义
的
表
单
数
据
,
你
客
户
端
的
验
证
就
失
败
了
。
用
户
主
要
通
过
表
单
参
数
和
你
的
脚
本
交
互
,
因
此
他
们
是
最
大
的
安
全
风
险
。
你
应
该
学
到
什
么
呢
?
在
P
H
P
脚
本
中
,
总
是
要
验
证
传
递
给
任
何
P
H
P
脚
本
的
数
据
。
在
本
文
中
,
我
们
向
你
演
示
了
如
何
分
析
和
防
范
跨
站
脚
本
(
X
S
S
)
攻
击
,
它
可
能
会
劫
持
用
户
凭
据
(
甚
至
更
严
重
)
。
你
也
会
看
到
如
何
防
止
会
玷
污
或
毁
坏
你
数
据
的
M
y
S
Q
L
注
入
攻
击
。
别
相
信
用
户
假
定
你
网
站
获
取
的
每
一
份
数
据
都
充
满
了
有
害
的
代
码
。
清
理
每
一
部
分
,
即
便
你
相
信
没
有
人
会
尝
试
攻
击
你
的
站
点
。
关
闭
全
局
变
量
你
可
能
会
有
的
最
大
安
全
漏
洞
是
启
用
了
r
e
g
i
s
t
e
r
_
g
l
o
b
a
l
s
配
置
参
数
。
幸
运
的
是
,
P
H
P
4
.
2
及
以
后
版
本
默
认
关
闭
了
这
个
配
置
。
如
果
打
开
了
r
e
g
i
s
t
e
r
_
g
l
o
b
a
l
s
,
你
可
以
在
你
的
p
h
p
.
i
n
i
文
件
中
通
过
改
变
r
e
g
i
s
t
e
r
_
g
l
o
b
a
l
s
变
量
为
O
f
f
关
闭
该
功
能
:
新
手
程
序
员
觉
得
注
册
全
局
变
量
很
方
便
,
但
他
们
不
会
意
识
到
这
个
设
置
有
多
么
危
险
。
一
个
启
用
了
全
局
变
量
的
服
务
器
会
自
动
为
全
局
变
量
赋
任
何
形
式
的
参
数
。
为
了
了
解
它
如
何
工
作
以
及
为
什
么
有
危
险
,
让
我
们
来
看
一
个
例
子
。
假
设
你
有
一
个
称
为
p
r
o
c
e
s
s
.
p
h
p
的
脚
本
,
它
会
向
你
的
数
据
库
插
入
表
单
数
据
。
初
始
的
表
单
像
下
面
这
样
:
运
行
p
r
o
c
e
s
s
.
p
h
p
的
时
候
,
启
用
了
注
册
全
局
变
量
的
P
H
P
会
将
该
参
数
赋
值
到
$
u
s
e
r
n
a
m
e
变
量
。
这
会
比
通
过
$
_
P
O
S
T
[
'
u
s
e
r
n
a
m
e
'
]
或
$
_
G
E
T
[
'
u
s
e
r
n
a
m
e
'
]
访
问
它
节
省
击
键
次
数
。
不
幸
的
是
,
这
也
会
给
你
留
下
安
全
问
题
,
因
为
P
H
P
会
设
置
该
变
量
的
值
为
通
过
G
E
T
或
P
O
S
T
的
参
数
发
送
到
脚
本
的
任
何
值
,
如
果
你
没
有
显
示
地
初
始
化
该
变
量
并
且
你
不
希
望
任
何
人
去
操
作
它
,
这
就
会
有
一
个
大
问
题
。
看
下
面
的
脚
本
,
假
如
$
a
u
t
h
o
r
i
z
e
d
变
量
的
值
为
t
r
u
e
,
它
会
给
用
户
显
示
通
过
验
证
的
数
据
。
正
常
情
况
下
,
只
有
当
用
户
正
确
通
过
了
这
个
假
想
的
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
变
量
的
值
才
会
被
设
置
为
真
。
但
是
如
果
你
启
用
了
r
e
g
i
s
t
e
r
_
g
l
o
b
a
l
s
,
任
何
人
都
可
以
发
送
一
个
G
E
T
参
数
,
例
如
a
u
t
h
o
r
i
z
e
d
=
1
去
覆
盖
它
:
这
个
故
事
的
寓
意
是
,
你
应
该
从
预
定
义
的
服
务
器
变
量
中
获
取
表
单
数
据
。
所
有
通
过
p
o
s
t
表
单
传
递
到
你
w
e
b
页
面
的
数
据
都
会
自
动
保
存
到
一
个
称
为
$
_
P
O
S
T
的
大
数
组
中
,
所
有
的
G
E
T
数
据
都
保
存
在
$
_
G
E
T
大
数
组
中
。
文
件
上
传
信
息
保
存
在
一
个
称
为
$
_
F
I
L
E
S
的
特
殊
数
据
中
。
另
外
,
还
有
一
个
称
为
$
_
R
E
Q
U
E
S
T
的
复
合
变
量
。
1
.
r
e
g
i
s
t
e
r
_
g
l
o
b
a
l
s
=
O
f
f
1
.
<
i
n
p
u
t
n
a
m
e
=
"
u
s
e
r
n
a
m
e
"
t
y
p
e
=
"
t
e
x
t
"
s
i
z
e
=
"
1
5
"
m
a
x
l
e
n
g
t
h
=
"
6
4
"
>
1
.
<
?
p
h
p
2
.
/
/
D
e
f
i
n
e
$
a
u
t
h
o
r
i
z
e
d
=
t
r
u
e
o
n
l
y
i
f
u
s
e
r
i
s
a
u
t
h
e
n
t
i
c
a
t
e
d
3
.
i
f
(
a
u
t
h
e
n
t
i
c
a
t
e
d
_
u
s
e
r
(
)
)
{
4
.
$
a
u
t
h
o
r
i
z
e
d
=
t
r
u
e
;
5
.
}
6
.
?
>
要
从
一
个
P
O
S
T
方
法
表
单
中
访
问
u
s
e
r
n
a
m
e
字
段
,
可
以
使
用
$
_
P
O
S
T
[
'
u
s
e
r
n
a
m
e
'
]
。
如
果
u
s
e
r
n
a
m
e
在
U
R
L
中
就
使
用
$
_
G
E
T
[
'
u
s
e
r
n
a
m
e
'
]
。
如
果
你
不
确
定
值
来
自
哪
里
,
用
$
_
R
E
Q
U
E
S
T
[
'
u
s
e
r
n
a
m
e
'
]
。
$
_
R
E
Q
U
E
S
T
是
$
_
G
E
T
、
$
_
P
O
S
T
、
和
$
_
C
O
O
K
I
E
数
组
的
结
合
。
如
果
你
有
两
个
或
多
个
值
有
相
同
的
参
数
名
称
,
注
意
P
H
P
会
使
用
哪
个
。
默
认
的
顺
序
是
c
o
o
k
i
e
、
P
O
S
T
、
然
后
是
G
E
T
。
推
荐
安
全
配
置
选
项
这
里
有
几
个
会
影
响
安
全
功
能
的
P
H
P
配
置
设
置
。
下
面
是
一
些
显
然
应
该
用
于
生
产
服
务
器
的
:
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
f
f
e
r
r
o
r
_
r
e
p
o
r
t
i
n
g
设
置
为
o
f
f
。
如
果
出
现
错
误
了
,
这
会
向
用
户
浏
览
器
发
送
可
见
的
错
误
报
告
信
息
。
对
于
生
产
服
务
器
,
使
用
错
误
日
志
代
替
。
开
发
服
务
器
如
果
在
防
火
墙
后
面
就
可
以
启
用
错
误
日
志
。
(
L
C
T
T
译
注
:
此
处
据
原
文
逻
辑
和
常
识
,
应
该
是
“
开
发
服
务
器
如
果
在
防
火
墙
后
面
就
可
以
启
用
错
误
报
告
,
即
o
n
。
”
)
停
用
这
些
函
数
:
s
y
s
t
e
m
(
)
、
e
x
e
c
(
)
、
p
a
s
s
t
h
r
u
(
)
、
s
h
e
l
l
_
e
x
e
c
(
)
、
p
r
o
c
_
o
p
e
n
(
)
、
和
p
o
p
e
n
(
)
。
o
p
e
n
_
b
a
s
e
d
i
r
为
/
t
m
p
(
以
便
保
存
会
话
信
息
)
目
录
和
w
e
b
根
目
录
,
以
便
脚
本
不
能
访
问
这
些
选
定
区
域
外
的
文
件
。
e
x
p
o
s
e
_
p
h
p
设
置
为
o
f
f
。
该
功
能
会
向
A
p
a
c
h
e
头
添
加
包
含
版
本
号
的
P
H
P
签
名
。
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
。
对
于
任
何
人
来
说
,
实
在
没
有
明
智
的
理
由
会
想
要
访
问
通
过
H
T
T
P
包
含
的
文
件
。
一
般
来
说
,
如
果
你
发
现
想
要
使
用
这
些
功
能
的
代
码
,
你
就
不
应
该
相
信
它
。
尤
其
要
小
心
会
使
用
类
似
s
y
s
t
e
m
(
)
函
数
的
代
码
-
它
几
乎
肯
定
有
缺
陷
。
启
用
了
这
些
设
置
后
,
让
我
们
来
看
看
一
些
特
定
的
攻
击
以
及
能
帮
助
你
保
护
你
服
务
器
的
方
法
。
S
Q
L
注
入
攻
击
由
于
P
H
P
传
递
到
M
y
S
Q
L
数
据
库
的
查
询
语
句
是
用
强
大
的
S
Q
L
编
程
语
言
编
写
的
,
就
有
了
某
些
人
通
过
在
w
e
b
查
询
参
数
中
使
用
M
y
S
Q
L
语
句
尝
试
S
Q
L
注
入
攻
击
的
风
险
。
通
过
在
参
数
中
插
入
有
害
的
S
Q
L
代
码
片
段
,
攻
击
者
会
尝
试
进
入
(
或
破
坏
)
你
的
服
务
器
。
假
如
说
你
有
一
个
最
终
会
放
入
变
量
$
p
r
o
d
u
c
t
的
表
单
参
数
,
你
使
用
了
类
似
下
面
的
S
Q
L
语
句
:
如
果
参
数
是
直
接
从
表
单
中
获
得
的
,
应
该
使
用
P
H
P
自
带
的
数
据
库
特
定
转
义
函
数
,
类
似
:
如
果
不
这
样
做
的
话
,
有
人
也
许
会
把
下
面
的
代
码
段
放
到
表
单
参
数
中
:
那
么
$
s
q
l
的
结
果
就
是
:
由
于
分
号
是
M
y
S
Q
L
的
语
句
分
隔
符
,
数
据
库
会
运
行
下
面
三
条
语
句
:
好
了
,
你
丢
失
了
你
的
表
。
注
意
实
际
上
P
H
P
和
M
y
S
Q
L
不
会
运
行
这
种
特
殊
语
法
,
因
为
m
y
s
q
l
_
q
u
e
r
y
(
)
函
数
只
允
许
每
个
请
求
处
理
一
个
语
句
。
但
是
,
一
个
子
查
询
仍
然
会
生
效
。
要
防
止
S
Q
L
注
入
攻
击
,
做
这
两
件
事
:
总
是
验
证
所
有
参
数
。
例
如
,
如
果
需
要
一
个
数
字
,
就
要
确
保
它
是
一
个
数
字
。
总
是
对
数
据
使
用
m
y
s
q
l
_
r
e
a
l
_
e
s
c
a
p
e
_
s
t
r
i
n
g
(
)
函
数
转
义
数
据
中
的
任
何
引
号
和
双
引
号
。
注
意
:
要
自
动
转
义
任
何
表
单
数
据
,
可
以
启
用
魔
术
引
号
(
注
意
:
要
自
动
转
义
任
何
表
单
数
据
,
可
以
启
用
魔
术
引
号
(
M
a
g
i
c
Q
u
o
t
e
s
)
。
)
。
一
些
M
y
S
Q
L
破
坏
可
以
通
过
限
制
M
y
S
Q
L
用
户
权
限
避
免
。
任
何
M
y
S
Q
L
账
户
可
以
限
制
为
只
允
许
对
选
定
的
表
进
行
特
定
类
型
的
查
询
。
例
如
,
你
可
以
创
建
只
能
选
择
行
的
M
y
S
Q
L
用
户
。
但
是
,
这
对
于
动
态
数
据
并
不
十
分
有
用
,
另
外
,
如
果
你
有
敏
感
的
用
户
信
息
,
可
能
某
些
人
能
访
问
其
中
一
些
数
据
,
但
你
并
不
希
望
如
此
。
例
如
,
一
个
访
问
账
户
数
据
的
用
户
可
能
会
尝
试
注
入
访
问
另
一
个
人
的
账
户
号
码
的
代
码
,
而
不
是
为
当
前
会
话
指
定
的
号
码
。
1
.
<
?
p
h
p
2
.
$
p
o
s
t
_
v
a
l
u
e
=
$
_
P
O
S
T
[
'
p
o
s
t
_
v
a
l
u
e
'
]
;
3
.
$
g
e
t
_
v
a
l
u
e
=
$
_
G
E
T
[
'
g
e
t
_
v
a
l
u
e
'
]
;
4
.
$
s
o
m
e
_
v
a
r
i
a
b
l
e
=
$
_
R
E
Q
U
E
S
T
[
'
s
o
m
e
_
v
a
l
u
e
'
]
;
5
.
?
>
1
.
$
s
q
l
=
"
s
e
l
e
c
t
*
f
r
o
m
p
i
n
f
o
w
h
e
r
e
p
r
o
d
u
c
t
=
'
$
p
r
o
d
u
c
t
'
"
;
1
.
$
s
q
l
=
'
S
e
l
e
c
t
*
f
r
o
m
p
i
n
f
o
w
h
e
r
e
p
r
o
d
u
c
t
=
'
"
'
2
.
m
y
s
q
l
_
r
e
a
l
_
e
s
c
a
p
e
_
s
t
r
i
n
g
(
$
p
r
o
d
u
c
t
)
.
'
"
'
;
1
.
3
9
'
;
D
R
O
P
p
i
n
f
o
;
S
E
L
E
C
T
'
F
O
O
1
.
s
e
l
e
c
t
p
r
o
d
u
c
t
f
r
o
m
p
i
n
f
o
w
h
e
r
e
p
r
o
d
u
c
t
=
'
3
9
'
;
D
R
O
P
p
i
n
f
o
;
S
E
L
E
C
T
'
F
O
O
'
1
.
s
e
l
e
c
t
*
f
r
o
m
p
i
n
f
o
w
h
e
r
e
p
r
o
d
u
c
t
=
'
3
9
'
2
.
D
R
O
P
p
i
n
f
o
3
.
S
E
L
E
C
T
'
F
O
O
'
防
止
基
本
的
X
S
S
攻
击
X
S
S
表
示
跨
站
脚
本
。
不
像
大
部
分
攻
击
,
该
漏
洞
发
生
在
客
户
端
。
X
S
S
最
常
见
的
基
本
形
式
是
在
用
户
提
交
的
内
容
中
放
入
J
a
v
a
S
c
r
i
p
t
以
便
偷
取
用
户
c
o
o
k
i
e
中
的
数
据
。
由
于
大
部
分
站
点
使
用
c
o
o
k
i
e
和
s
e
s
s
i
o
n
验
证
访
客
,
偷
取
的
数
据
可
用
于
模
拟
该
用
户
-
如
果
是
一
个
常
见
的
用
户
账
户
就
会
深
受
麻
烦
,
如
果
是
管
理
员
账
户
甚
至
是
彻
底
的
惨
败
。
如
果
你
不
在
站
点
中
使
用
c
o
o
k
i
e
和
s
e
s
s
i
o
n
I
D
,
你
的
用
户
就
不
容
易
被
攻
击
,
但
你
仍
然
应
该
明
白
这
种
攻
击
是
如
何
工
作
的
。
不
像
M
y
S
Q
L
注
入
攻
击
,
X
S
S
攻
击
很
难
预
防
。
Y
a
h
o
o
、
e
B
a
y
、
A
p
p
l
e
、
以
及
M
i
c
r
o
s
o
f
t
都
曾
经
受
X
S
S
影
响
。
尽
管
攻
击
不
包
含
P
H
P
,
但
你
可
以
使
用
P
H
P
来
剥
离
用
户
数
据
以
防
止
攻
击
。
为
了
防
止
X
S
S
攻
击
,
你
应
该
限
制
和
过
滤
用
户
提
交
给
你
站
点
的
数
据
。
正
是
因
为
这
个
原
因
,
大
部
分
在
线
公
告
板
都
不
允
许
在
提
交
的
数
据
中
使
用
H
T
M
L
标
签
,
而
是
用
自
定
义
的
标
签
格
式
代
替
,
例
如
[
b
]
和
[
l
i
n
k
t
o
]
。
让
我
们
来
看
一
个
如
何
防
止
这
类
攻
击
的
简
单
脚
本
。
对
于
更
完
善
的
解
决
办
法
,
可
以
使
用
S
a
f
e
H
T
M
L
,
本
文
的
后
面
部
分
会
讨
论
到
。
这
个
函
数
将
H
T
M
L
特
定
的
字
符
转
换
为
H
T
M
L
字
面
字
符
。
一
个
浏
览
器
对
任
何
通
过
这
个
脚
本
的
H
T
M
L
以
非
标
记
的
文
本
呈
现
。
例
如
,
考
虑
下
面
的
H
T
M
L
字
符
串
:
一
般
情
况
下
,
H
T
M
L
会
显
示
为
:
B
o
l
d
T
e
x
t
但
是
,
通
过
t
r
a
n
s
f
o
r
m
_
H
T
M
L
(
)
后
,
它
就
像
原
始
输
入
一
样
呈
现
。
原
因
是
处
理
的
字
符
串
中
的
标
签
字
符
串
转
换
为
H
T
M
L
实
体
。
t
r
a
n
s
f
o
r
m
_
H
T
M
L
(
)
的
结
果
字
符
串
的
纯
文
本
看
起
来
像
下
面
这
样
:
该
函
数
的
实
质
是
h
t
m
l
e
n
t
i
t
i
e
s
(
)
函
数
调
用
,
它
会
将
<
、
>
、
和
&
转
换
为
&
l
t
;
、
&
g
t
;
、
和
&
a
m
p
;
。
尽
管
这
会
处
理
大
部
分
的
普
通
攻
击
,
但
有
经
验
的
X
S
S
攻
击
者
有
另
一
种
把
戏
:
用
十
六
进
制
或
U
T
F
-
8
编
码
恶
意
脚
本
,
而
不
是
采
用
普
通
的
A
S
C
I
I
文
本
,
从
而
希
望
能
绕
过
你
的
过
滤
器
。
他
们
可
以
在
U
R
L
的
G
E
T
变
量
中
发
送
代
码
,
告
诉
浏
览
器
,
“
这
是
十
六
进
制
代
码
,
你
能
帮
我
运
行
吗
?
”
一
个
十
六
进
制
例
子
看
起
来
像
这
样
:
浏
览
器
渲
染
这
个
信
息
的
时
候
,
结
果
就
是
:
为
了
防
止
这
种
情
况
,
t
r
a
n
s
f
o
r
m
_
H
T
M
L
(
)
采
用
额
外
的
步
骤
把
#
和
%
符
号
转
换
为
它
们
的
实
体
,
从
而
避
免
十
六
进
制
攻
击
,
并
转
换
U
T
F
-
8
编
码
的
数
据
。
最
后
,
为
了
防
止
某
些
人
用
很
长
的
输
入
超
载
字
符
串
从
而
导
致
某
些
东
西
崩
溃
,
你
可
以
添
加
一
个
可
选
的
$
l
e
n
g
t
h
参
数
来
截
取
你
指
定
最
大
长
度
的
字
符
串
。
使
用
S
a
f
e
H
T
M
L
之
前
脚
本
的
问
题
比
较
简
单
,
它
不
允
许
任
何
类
型
的
用
户
标
记
。
不
幸
的
是
,
这
里
有
上
百
种
方
法
能
使
J
a
v
a
S
c
r
i
p
t
跳
过
用
户
的
过
滤
器
,
并
且
要
从
用
户
输
入
中
剥
离
全
部
H
T
M
L
,
还
没
有
方
法
可
以
防
止
这
种
情
况
。
当
前
,
没
有
任
何
一
个
脚
本
能
保
证
无
法
被
破
解
,
尽
管
有
一
些
确
实
比
大
部
分
要
好
。
有
白
名
单
和
黑
名
单
两
种
方
法
加
固
安
全
,
白
名
单
比
较
简
单
而
且
更
加
有
效
。
一
个
白
名
单
解
决
方
案
是
P
i
x
e
l
A
p
e
s
的
S
a
f
e
H
T
M
L
反
跨
站
脚
本
解
析
器
。
S
a
f
e
H
T
M
L
能
识
别
有
效
H
T
M
L
,
能
追
踪
并
剥
离
任
何
危
险
标
签
。
它
用
另
一
个
称
为
H
T
M
L
S
a
x
的
软
件
包
进
行
解
析
。
按
照
下
面
步
骤
安
装
和
使
用
S
a
f
e
H
T
M
L
:
1
.
到
h
t
t
p
:
/
/
p
i
x
e
l
-
a
p
e
s
.
c
o
m
/
s
a
f
e
h
t
m
l
/
?
p
a
g
e
=
s
a
f
e
h
t
m
l
下
载
最
新
版
本
的
S
a
f
e
H
T
M
L
。
2
.
把
文
件
放
到
你
服
务
器
的
类
文
件
夹
。
该
文
件
夹
包
括
S
a
f
e
H
T
M
L
和
H
T
M
L
S
a
x
功
能
所
需
的
所
有
东
西
。
3
.
在
脚
本
中
S
a
f
e
H
T
M
L
类
文
件
(
s
a
f
e
h
t
m
l
.
p
h
p
)
。
4
.
创
建
一
个
名
为
$
s
a
f
e
h
t
m
l
的
新
S
a
f
e
H
T
M
L
对
象
。
1
.
f
u
n
c
t
i
o
n
t
r
a
n
s
f
o
r
m
_
H
T
M
L
(
$
s
t
r
i
n
g
,
$
l
e
n
g
t
h
=
n
u
l
l
)
{
2
.
/
/
H
e
l
p
s
p
r
e
v
e
n
t
X
S
S
a
t
t
a
c
k
s
3
.
/
/
R
e
m
o
v
e
d
e
a
d
s
p
a
c
e
.
4
.
$
s
t
r
i
n
g
=
t
r
i
m
(
$
s
t
r
i
n
g
)
;
5
.
/
/
P
r
e
v
e
n
t
p
o
t
e
n
t
i
a
l
U
n
i
c
o
d
e
c
o
d
e
c
p
r
o
b
l
e
m
s
.
6
.
$
s
t
r
i
n
g
=
u
t
f
8
_
d
e
c
o
d
e
(
$
s
t
r
i
n
g
)
;
7
.
/
/
H
T
M
L
i
z
e
H
T
M
L
-
s
p
e
c
i
f
i
c
c
h
a
r
a
c
t
e
r
s
.
8
.
$
s
t
r
i
n
g
=
h
t
m
l
e
n
t
i
t
i
e
s
(
$
s
t
r
i
n
g
,
E
N
T
_
N
O
Q
U
O
T
E
S
)
;
9
.
$
s
t
r
i
n
g
=
s
t
r
_
r
e
p
l
a
c
e
(
"
#
"
,
"
&
#
3
5
;
"
,
$
s
t
r
i
n
g
)
;
1
0
.
$
s
t
r
i
n
g
=
s
t
r
_
r
e
p
l
a
c
e
(
"
%
"
,
"
&
#
3
7
;
"
,
$
s
t
r
i
n
g
)
;
1
1
.
$
l
e
n
g
t
h
=
i
n
t
v
a
l
(
$
l
e
n
g
t
h
)
;
1
2
.
i
f
(
$
l
e
n
g
t
h
>
0
)
{
1
3
.
$
s
t
r
i
n
g
=
s
u
b
s
t
r
(
$
s
t
r
i
n
g
,
0
,
$
l
e
n
g
t
h
)
;
1
4
.
}
1
5
.
r
e
t
u
r
n
$
s
t
r
i
n
g
;
1
6
.
}
1
.
<
S
T
R
O
N
G
>
B
o
l
d
T
e
x
t
<
/
S
T
R
O
N
G
>
1
.
<
S
T
R
O
N
G
>
B
o
l
d
T
e
x
t
<
/
S
T
R
O
N
G
>
1
.
<
a
h
r
e
f
=
"
h
t
t
p
:
/
/
h
o
s
t
/
a
.
p
h
p
?
v
a
r
i
a
b
l
e
=
%
2
2
%
3
e
%
3
c
%
5
3
%
4
3
%
5
2
%
4
9
%
5
0
%
5
4
%
3
e
%
4
4
%
6
f
%
7
3
%
6
f
%
6
d
%
6
5
%
7
4
%
6
8
%
6
9
%
6
e
%
6
7
%
6
d
%
6
1
%
6
c
%
6
9
%
6
3
%
6
9
%
6
f
%
7
5
%
7
3
%
3
c
%
2
f
%
5
3
%
4
3
%
5
2
%
4
9
%
5
0
%
5
4
%
3
e
"
>
1
.
<
a
h
r
e
f
=
"
h
t
t
p
:
/
/
h
o
s
t
/
a
.
p
h
p
?
v
a
r
i
a
b
l
e
=
"
>
<
S
C
R
I
P
T
>
D
o
s
o
m
e
t
h
i
n
g
m
a
l
i
c
i
o
u
s
<
/
S
C
R
I
P
T
>
i
n
c
l
u
d
e
5
.
用
$
s
a
f
e
h
t
m
l
-
>
p
a
r
s
e
(
)
方
法
清
理
你
的
数
据
。
这
是
一
个
完
整
的
例
子
:
如
果
你
想
清
理
脚
本
中
的
任
何
其
它
数
据
,
你
不
需
要
创
建
一
个
新
的
对
象
;
在
你
的
整
个
脚
本
中
只
需
要
使
用
$
s
a
f
e
h
t
m
l
-
>
p
a
r
s
e
(
)
方
法
。
什
么
可
能
会
出
现
问
题
?
你
可
能
犯
的
最
大
错
误
是
假
设
这
个
类
能
完
全
避
免
X
S
S
攻
击
。
S
a
f
e
H
T
M
L
是
一
个
相
当
复
杂
的
脚
本
,
几
乎
能
检
查
所
有
事
情
,
但
没
有
什
么
是
能
保
证
的
。
你
仍
然
需
要
对
你
的
站
点
做
参
数
验
证
。
例
如
,
该
类
不
能
检
查
给
定
变
量
的
长
度
以
确
保
能
适
应
数
据
库
的
字
段
。
它
也
不
检
查
缓
冲
溢
出
问
题
。
X
S
S
攻
击
者
很
有
创
造
力
,
他
们
使
用
各
种
各
样
的
方
法
来
尝
试
达
到
他
们
的
目
标
。
可
以
阅
读
R
S
n
a
k
e
的
X
S
S
教
程
h
t
t
p
:
/
/
h
a
.
c
k
e
r
s
.
o
r
g
/
x
s
s
.
h
t
m
l
,
看
一
下
这
里
有
多
少
种
方
法
尝
试
使
代
码
跳
过
过
滤
器
。
S
a
f
e
H
T
M
L
项
目
有
很
好
的
程
序
员
一
直
在
尝
试
阻
止
X
S
S
攻
击
,
但
无
法
保
证
某
些
人
不
会
想
起
一
些
奇
怪
和
新
奇
的
方
法
来
跳
过
过
滤
器
。
注
意
:
注
意
:
X
S
S
攻
击
严
重
影
响
的
一
个
例
子
攻
击
严
重
影
响
的
一
个
例
子
h
t
t
p
:
/
/
n
a
m
b
.
l
a
/
p
o
p
u
l
a
r
/
t
e
c
h
.
h
t
m
l
,
其
中
显
示
了
如
何
一
步
一
步
创
建
一
个
让
,
其
中
显
示
了
如
何
一
步
一
步
创
建
一
个
让
M
y
S
p
a
c
e
服
务
器
过
载
的
服
务
器
过
载
的
J
a
v
a
S
c
r
i
p
t
X
S
S
蠕
虫
。
蠕
虫
。
用
单
向
哈
希
保
护
数
据
该
脚
本
对
输
入
的
数
据
进
行
单
向
转
换
,
换
句
话
说
,
它
能
对
某
人
的
密
码
产
生
哈
希
签
名
,
但
不
能
解
码
获
得
原
始
密
码
。
为
什
么
你
希
望
这
样
呢
?
应
用
程
序
会
存
储
密
码
。
一
个
管
理
员
不
需
要
知
道
用
户
的
密
码
,
事
实
上
,
只
有
用
户
知
道
他
/
她
自
己
的
密
码
是
个
好
主
意
。
系
统
(
也
仅
有
系
统
)
应
该
能
识
别
一
个
正
确
的
密
码
;
这
是
U
n
i
x
多
年
来
的
密
码
安
全
模
型
。
单
向
密
码
安
全
按
照
下
面
的
方
式
工
作
:
1
.
当
一
个
用
户
或
管
理
员
创
建
或
更
改
一
个
账
户
密
码
时
,
系
统
对
密
码
进
行
哈
希
并
保
存
结
果
。
主
机
系
统
会
丢
弃
明
文
密
码
。
2
.
当
用
户
通
过
任
何
方
式
登
录
到
系
统
时
,
再
次
对
输
入
的
密
码
进
行
哈
希
。
3
.
主
机
系
统
丢
弃
输
入
的
明
文
密
码
。
4
.
当
前
新
哈
希
的
密
码
和
之
前
保
存
的
哈
希
相
比
较
。
5
.
如
果
哈
希
的
密
码
相
匹
配
,
系
统
就
会
授
予
访
问
权
限
。
主
机
系
统
完
成
这
些
并
不
需
要
知
道
原
始
密
码
;
事
实
上
,
原
始
密
码
完
全
无
所
谓
。
一
个
副
作
用
是
,
如
果
某
人
侵
入
系
统
并
盗
取
了
密
码
数
据
库
,
入
侵
者
会
获
得
很
多
哈
希
后
的
密
码
,
但
无
法
把
它
们
反
向
转
换
为
原
始
密
码
。
当
然
,
给
足
够
时
间
、
计
算
能
力
,
以
及
弱
用
户
密
码
,
一
个
攻
击
者
还
是
有
可
能
采
用
字
典
攻
击
找
出
密
码
。
因
此
,
别
轻
易
让
人
碰
你
的
密
码
数
据
库
,
如
果
确
实
有
人
这
样
做
了
,
让
每
个
用
户
更
改
他
们
的
密
码
。
加
密
V
s
哈
希
技
术
上
来
来
说
,
哈
希
过
程
并
不
是
加
密
。
哈
希
和
加
密
是
不
同
的
,
这
有
两
个
理
由
:
不
像
加
密
,
哈
希
数
据
不
能
被
解
密
。
是
有
可
能
(
但
非
常
罕
见
)
两
个
不
同
的
字
符
串
会
产
生
相
同
的
哈
希
。
并
不
能
保
证
哈
希
是
唯
一
的
,
因
此
别
像
数
据
库
中
的
唯
一
键
那
样
使
用
哈
希
。
上
面
的
m
d
5
(
)
函
数
基
于
R
S
A
数
据
安
全
公
司
的
消
息
摘
要
算
法
(
即
M
D
5
)
返
回
一
个
由
3
2
个
字
符
组
成
的
十
六
进
制
串
。
然
后
你
可
以
将
那
个
3
2
位
字
符
串
插
入
到
数
据
库
中
和
另
一
个
m
d
5
字
符
串
相
比
较
,
或
者
直
接
用
这
3
2
个
字
符
。
破
解
脚
本
几
乎
不
可
能
解
密
M
D
5
数
据
。
或
者
说
很
难
。
但
是
,
你
仍
然
需
要
好
的
密
码
,
因
为
用
一
整
个
字
典
生
成
哈
希
数
据
库
仍
然
很
简
单
。
有
一
些
在
线
M
D
5
字
典
,
当
你
输
入
0
6
d
8
0
e
b
0
c
5
0
b
4
9
a
5
0
9
b
4
9
f
2
4
2
4
e
8
c
8
0
5
后
会
得
到
结
果
“
d
o
g
”
。
因
此
,
尽
管
技
术
上
M
D
5
不
能
被
解
密
,
这
里
仍
然
有
漏
洞
,
如
果
某
人
获
得
了
你
的
密
码
数
据
库
,
你
可
以
肯
定
他
们
肯
定
会
使
用
M
D
5
字
典
破
译
。
因
此
,
当
你
创
建
基
于
密
码
的
系
统
的
时
候
尤
其
要
注
意
密
码
长
度
(
最
小
6
个
字
符
,
8
个
或
许
会
更
好
)
和
包
括
字
母
和
数
字
。
并
确
保
这
个
密
码
不
在
字
典
中
。
用
M
c
r
y
p
t
加
密
数
据
如
果
你
不
需
要
以
可
阅
读
形
式
查
看
密
码
,
采
用
M
D
5
就
足
够
了
。
不
幸
的
是
,
这
里
并
不
总
是
有
可
选
项
,
如
果
你
提
供
以
加
密
形
式
存
储
某
人
的
信
用
卡
信
息
,
你
可
能
需
要
在
后
面
的
某
个
地
方
进
行
解
密
。
最
早
的
一
个
解
决
方
案
是
M
c
r
y
p
t
模
块
,
这
是
一
个
用
于
允
许
P
H
P
高
速
加
密
的
插
件
。
M
c
r
y
p
t
库
提
供
了
超
过
3
0
种
用
于
加
密
的
计
算
方
法
,
并
且
提
供
口
令
确
保
只
有
你
(
或
者
你
的
用
户
)
可
以
解
密
数
据
。
让
我
们
来
看
看
使
用
方
法
。
下
面
的
脚
本
包
含
了
使
用
M
c
r
y
p
t
加
密
和
解
密
数
据
的
函
数
:
1
.
<
?
p
h
p
2
.
/
*
I
f
y
o
u
'
r
e
s
t
o
r
i
n
g
t
h
e
H
T
M
L
S
a
x
3
.
p
h
p
i
n
t
h
e
/
c
l
a
s
s
e
s
d
i
r
e
c
t
o
r
y
,
a
l
o
n
g
3
.
w
i
t
h
t
h
e
s
a
f
e
h
t
m
l
.
p
h
p
s
c
r
i
p
t
,
d
e
f
i
n
e
X
M
L
_
H
T
M
L
S
A
X
3
a
s
a
n
u
l
l
s
t
r
i
n
g
.
*
/
4
.
d
e
f
i
n
e
(
X
M
L
_
H
T
M
L
S
A
X
3
,
'
'
)
;
5
.
/
/
I
n
c
l
u
d
e
t
h
e
c
l
a
s
s
f
i
l
e
.
6
.
r
e
q
u
i
r
e
_
o
n
c
e
(
'
c
l
a
s
s
e
s
/
s
a
f
e
h
t
m
l
.
p
h
p
'
)
;
7
.
/
/
D
e
f
i
n
e
s
o
m
e
s
a
m
p
l
e
b
a
d
c
o
d
e
.
8
.
$
d
a
t
a
=
"
T
h
i
s
d
a
t
a
w
o
u
l
d
r
a
i
s
e
a
n
a
l
e
r
t
<
s
c
r
i
p
t
>
a
l
e
r
t
(
'
X
S
S
A
t
t
a
c
k
'
)
<
/
s
c
r
i
p
t
>
"
;
9
.
/
/
C
r
e
a
t
e
a
s
a
f
e
h
t
m
l
o
b
j
e
c
t
.
1
0
.
$
s
a
f
e
h
t
m
l
=
n
e
w
s
a
f
e
h
t
m
l
(
)
;
1
1
.
/
/
P
a
r
s
e
a
n
d
s
a
n
i
t
i
z
e
t
h
e
d
a
t
a
.
1
2
.
$
s
a
f
e
_
d
a
t
a
=
$
s
a
f
e
h
t
m
l
-
>
p
a
r
s
e
(
$
d
a
t
a
)
;
1
3
.
/
/
D
i
s
p
l
a
y
r
e
s
u
l
t
.
1
4
.
e
c
h
o
'
T
h
e
s
a
n
i
t
i
z
e
d
d
a
t
a
i
s
<
b
r
/
>
'
.
$
s
a
f
e
_
d
a
t
a
;
1
5
.
?
>
1
.
f
u
n
c
t
i
o
n
h
a
s
h
_
i
s
h
(
$
s
t
r
i
n
g
)
{
2
.
r
e
t
u
r
n
m
d
5
(
$
s
t
r
i
n
g
)
;
3
.
}
1
.
<
?
p
h
p
m
c
r
y
p
t
(
)
函
数
需
要
几
个
信
息
:
需
要
加
密
的
数
据
用
于
加
密
和
解
锁
数
据
的
口
令
,
也
称
为
键
。
用
于
加
密
数
据
的
计
算
方
法
,
也
就
是
用
于
加
密
数
据
的
算
法
。
该
脚
本
使
用
了
M
C
R
Y
P
T
_
S
E
R
P
E
N
T
_
2
5
6
,
但
你
可
以
从
很
多
算
法
中
选
择
,
包
括
M
C
R
Y
P
T
_
T
W
O
F
I
S
H
1
9
2
、
M
C
R
Y
P
T
_
R
C
2
、
M
C
R
Y
P
T
_
D
E
S
、
和
M
C
R
Y
P
T
_
L
O
K
I
9
7
。
加
密
数
据
的
模
式
。
这
里
有
几
个
你
可
以
使
用
的
模
式
,
包
括
电
子
密
码
本
(
E
l
e
c
t
r
o
n
i
c
C
o
d
e
b
o
o
k
)
和
加
密
反
馈
(
C
i
p
h
e
r
F
e
e
d
b
a
c
k
)
。
该
脚
本
使
用
M
C
R
Y
P
T
_
M
O
D
E
_
C
B
C
密
码
块
链
接
。
一
个
初
始
化
向
量
初
始
化
向
量
-
也
称
为
I
V
或
者
种
子
,
用
于
为
加
密
算
法
设
置
种
子
的
额
外
二
进
制
位
。
也
就
是
使
算
法
更
难
于
破
解
的
额
外
信
息
。
键
和
I
V
字
符
串
的
长
度
,
这
可
能
随
着
加
密
和
块
而
不
同
。
使
用
m
c
r
y
p
t
_
g
e
t
_
k
e
y
_
s
i
z
e
(
)
和
m
c
r
y
p
t
_
g
e
t
_
b
l
o
c
k
_
s
i
z
e
(
)
函
数
获
取
合
适
的
长
度
;
然
后
用
s
u
b
s
t
r
(
)
函
数
将
键
的
值
截
取
为
合
适
的
长
度
。
(
如
果
键
的
长
度
比
要
求
的
短
,
别
担
心
,
M
c
r
y
p
t
会
用
0
填
充
。
)
如
果
有
人
窃
取
了
你
的
数
据
和
短
语
,
他
们
只
能
一
个
个
尝
试
加
密
算
法
直
到
找
到
正
确
的
那
一
个
。
因
此
,
在
使
用
它
之
前
我
们
通
过
对
键
使
用
m
d
5
(
)
函
数
增
加
安
全
,
就
算
他
们
获
取
了
数
据
和
短
语
,
入
侵
者
也
不
能
获
得
想
要
的
东
西
。
入
侵
者
同
时
需
要
函
数
,
数
据
和
口
令
,
如
果
真
是
如
此
,
他
们
可
能
获
得
了
对
你
服
务
器
的
完
整
访
问
,
你
只
能
大
清
洗
了
。
这
里
还
有
一
个
数
据
存
储
格
式
的
小
问
题
。
M
c
r
y
p
t
以
难
懂
的
二
进
制
形
式
返
回
加
密
后
的
数
据
,
这
使
得
当
你
将
其
存
储
到
M
y
S
Q
L
字
段
的
时
候
可
能
出
现
可
怕
错
误
。
因
此
,
我
们
使
用
b
a
s
e
6
4
e
n
c
o
d
e
(
)
和
b
a
s
e
6
4
d
e
c
o
d
e
(
)
函
数
转
换
为
和
S
Q
L
兼
容
的
字
母
格
式
和
可
检
索
行
。
破
解
脚
本
除
了
实
验
多
种
加
密
方
法
,
你
还
可
以
在
脚
本
中
添
加
一
些
便
利
。
例
如
,
不
用
每
次
都
提
供
键
和
模
式
,
而
是
在
包
含
的
文
件
中
声
明
为
全
局
常
量
。
生
成
随
机
密
码
随
机
(
但
难
以
猜
测
)
字
符
串
在
用
户
安
全
中
很
重
要
。
例
如
,
如
果
某
人
丢
失
了
密
码
并
且
你
使
用
M
D
5
哈
希
,
你
不
可
能
,
也
不
希
望
查
找
回
来
。
而
是
应
该
生
成
一
个
安
全
的
随
机
密
码
并
发
送
给
用
户
。
为
了
访
问
你
站
点
的
服
务
,
另
外
一
个
用
于
生
成
随
机
数
字
的
应
用
程
序
会
创
建
有
效
链
接
。
下
面
是
创
建
密
码
的
一
个
函
数
:
1
.
<
?
p
h
p
2
.
$
d
a
t
a
=
"
S
t
u
f
f
y
o
u
w
a
n
t
e
n
c
r
y
p
t
e
d
"
;
3
.
$
k
e
y
=
"
S
e
c
r
e
t
p
a
s
s
p
h
r
a
s
e
u
s
e
d
t
o
e
n
c
r
y
p
t
y
o
u
r
d
a
t
a
"
;
4
.
$
c
i
p
h
e
r
=
"
M
C
R
Y
P
T
_
S
E
R
P
E
N
T
_
2
5
6
"
;
5
.
$
m
o
d
e
=
"
M
C
R
Y
P
T
_
M
O
D
E
_
C
B
C
"
;
6
.
f
u
n
c
t
i
o
n
e
n
c
r
y
p
t
(
$
d
a
t
a
,
$
k
e
y
,
$
c
i
p
h
e
r
,
$
m
o
d
e
)
{
7
.
/
/
E
n
c
r
y
p
t
d
a
t
a
8
.
r
e
t
u
r
n
(
s
t
r
i
n
g
)
9
.
b
a
s
e
6
4
_
e
n
c
o
d
e
1
0
.
(
1
1
.
m
c
r
y
p
t
_
e
n
c
r
y
p
t
1
2
.
(
1
3
.
$
c
i
p
h
e
r
,
1
4
.
s
u
b
s
t
r
(
m
d
5
(
$
k
e
y
)
,
0
,
m
c
r
y
p
t
_
g
e
t
_
k
e
y
_
s
i
z
e
(
$
c
i
p
h
e
r
,
$
m
o
d
e
)
)
,
1
5
.
$
d
a
t
a
,
1
6
.
$
m
o
d
e
,
1
7
.
s
u
b
s
t
r
(
m
d
5
(
$
k
e
y
)
,
0
,
m
c
r
y
p
t
_
g
e
t
_
b
l
o
c
k
_
s
i
z
e
(
$
c
i
p
h
e
r
,
$
m
o
d
e
)
)
1
8
.
)
1
9
.
)
;
2
0
.
}
2
1
.
f
u
n
c
t
i
o
n
d
e
c
r
y
p
t
(
$
d
a
t
a
,
$
k
e
y
,
$
c
i
p
h
e
r
,
$
m
o
d
e
)
{
2
2
.
/
/
D
e
c
r
y
p
t
d
a
t
a
2
3
.
r
e
t
u
r
n
(
s
t
r
i
n
g
)
2
4
.
m
c
r
y
p
t
_
d
e
c
r
y
p
t
2
5
.
(
2
6
.
$
c
i
p
h
e
r
,
2
7
.
s
u
b
s
t
r
(
m
d
5
(
$
k
e
y
)
,
0
,
m
c
r
y
p
t
_
g
e
t
_
k
e
y
_
s
i
z
e
(
$
c
i
p
h
e
r
,
$
m
o
d
e
)
)
,
2
8
.
b
a
s
e
6
4
_
d
e
c
o
d
e
(
$
d
a
t
a
)
,
2
9
.
$
m
o
d
e
,
3
0
.
s
u
b
s
t
r
(
m
d
5
(
$
k
e
y
)
,
0
,
m
c
r
y
p
t
_
g
e
t
_
b
l
o
c
k
_
s
i
z
e
(
$
c
i
p
h
e
r
,
$
m
o
d
e
)
)
3
1
.
)
;
3
2
.
}
3
3
.
?
>
1
.
<
?
p
h
p
2
.
f
u
n
c
t
i
o
n
m
a
k
e
_
p
a
s
s
w
o
r
d
(
$
n
u
m
_
c
h
a
r
s
)
{
3
.
i
f
(
(
i
s
_
n
u
m
e
r
i
c
(
$
n
u
m
_
c
h
a
r
s
)
)
&
&
4
.
(
$
n
u
m
_
c
h
a
r
s
>
0
)
&
&
5
.
(
!
i
s
_
n
u
l
l
(
$
n
u
m
_
c
h
a
r
s
)
)
)
{
6
.
$
p
a
s
s
w
o
r
d
=
'
'
;
7
.
$
a
c
c
e
p
t
e
d
_
c
h
a
r
s
=
'
a
b
c
d
e
f
g
h
i
j
k
l
m
n
o
p
q
r
s
t
u
v
w
x
y
z
1
2
3
4
5
6
7
8
9
0
'
;
8
.
/
/
S
e
e
d
t
h
e
g
e
n
e
r
a
t
o
r
i
f
n
e
c
e
s
s
a
r
y
.
9
.
s
r
a
n
d
(
(
(
i
n
t
)
(
(
d
o
u
b
l
e
)
m
i
c
r
o
t
i
m
e
(
)
*
1
0
0
0
0
0
3
)
)
)
;
1
0
.
f
o
r
(
$
i
=
0
;
$
i
<
=
$
n
u
m
_
c
h
a
r
s
;
$
i
+
+
)
{
1
1
.
$
r
a
n
d
o
m
_
n
u
m
b
e
r
=
r
a
n
d
(
0
,
(
s
t
r
l
e
n
(
$
a
c
c
e
p
t
e
d
_
c
h
a
r
s
)
-
1
)
)
;
使
用
脚
本
m
a
k
e
_
p
a
s
s
w
o
r
d
(
)
函
数
返
回
一
个
字
符
串
,
因
此
你
需
要
做
的
就
是
提
供
字
符
串
的
长
度
作
为
参
数
:
函
数
按
照
下
面
步
骤
工
作
:
函
数
确
保
$
n
u
m
_
c
h
a
r
s
是
非
零
的
正
整
数
。
函
数
初
始
化
$
a
c
c
e
p
t
e
d
_
c
h
a
r
s
变
量
为
密
码
可
能
包
含
的
字
符
列
表
。
该
脚
本
使
用
所
有
小
写
字
母
和
数
字
0
到
9
,
但
你
可
以
使
用
你
喜
欢
的
任
何
字
符
集
合
。
(
L
C
T
T
译
注
:
有
时
候
为
了
便
于
肉
眼
识
别
,
你
可
以
将
其
中
的
0
和
O
,
1
和
l
之
类
的
都
去
掉
。
)
随
机
数
生
成
器
需
要
一
个
种
子
,
从
而
获
得
一
系
列
类
随
机
值
(
P
H
P
4
.
2
及
之
后
版
本
中
并
不
需
要
,
会
自
动
播
种
)
。
函
数
循
环
$
n
u
m
_
c
h
a
r
s
次
,
每
次
迭
代
生
成
密
码
中
的
一
个
字
符
。
对
于
每
个
新
字
符
,
脚
本
查
看
$
a
c
c
e
p
t
e
d
_
c
h
a
r
s
的
长
度
,
选
择
0
和
长
度
之
间
的
一
个
数
字
,
然
后
添
加
$
a
c
c
e
p
t
e
d
_
c
h
a
r
s
中
该
数
字
为
索
引
值
的
字
符
到
$
p
a
s
s
w
o
r
d
。
循
环
结
束
后
,
函
数
返
回
$
p
a
s
s
w
o
r
d
。
许
可
证
本
篇
文
章
,
包
括
相
关
的
源
代
码
和
文
件
,
都
是
在
T
h
e
C
o
d
e
P
r
o
j
e
c
t
O
p
e
n
L
i
c
e
n
s
e
(
C
P
O
L
)
协
议
下
发
布
。
v
i
a
:
h
t
t
p
:
/
/
w
w
w
.
c
o
d
e
p
r
o
j
e
c
t
.
c
o
m
/
A
r
t
i
c
l
e
s
/
3
6
3
8
9
7
/
P
H
P
-
S
e
c
u
r
i
t
y
作
者
:
S
a
m
a
r
R
i
z
v
i
译
者
:
i
c
t
l
y
h
校
对
:
w
x
y
本
文
由
L
C
T
T
原
创
翻
译
,
L
i
n
u
x
中
国
荣
誉
推
出
1
2
.
$
p
a
s
s
w
o
r
d
.
=
$
a
c
c
e
p
t
e
d
_
c
h
a
r
s
[
$
r
a
n
d
o
m
_
n
u
m
b
e
r
]
;
1
3
.
}
1
4
.
r
e
t
u
r
n
$
p
a
s
s
w
o
r
d
;
1
5
.
}
1
6
.
}
1
7
.
?
>
1
.
<
?
p
h
p
2
.
$
f
i
f
t
e
e
n
_
c
h
a
r
a
c
t
e
r
_
p
a
s
s
w
o
r
d
=
m
a
k
e
_
p
a
s
s
w
o
r
d
(
1
5
)
;
3
.
?
>
阅
读
原
文
回复
举报
上一个主题
下一个主题
高级模式
B
Color
Image
Link
Quote
Code
Smilies
您需要登录后才可以回帖
登录
|
立即注册
本版积分规则
发表回复
!disable!!post_parseurl!
使用Markdown编辑器编辑
使用富文本编辑器编辑
回帖后跳转到最后一页