一、PHP代码执行函数
1.PHP代码执行函数-eval & assert & preg_replace
函数 eval() 语言结构是 非常危险的, 因为它允许执行任意 PHP 代码。 它这样用是很危险的。如果您仔细的确认过,除了使用此结构以外 别无方法, 请多加注意,不要允许传入任何由用户 提供的、未经完整验证过的数据。
2.
Code
需要被执行的字符串
代码不能包含打开/关闭 PHP tags。比如,‘echo “Hi!”;’ 不能这样传入:’<?php echo "Hi!"; ?>’。但仍然可以用合适的 PHP tag 来离开、重新进入 PHP 模式。比如 ‘echo “In PHP mode!”; ?>In HTML mode!<?php echo “Back in PHP mode!”;’ 。
除此之外,传入的必须是有效的 PHP 代码。所有的语句必须以分号结尾。比如’echo “Hi!”'会导致一个 parse error,而’echo “Hi!”;'则会正常运行。
return 语句会立即中止当前字符串的执行。
代码执行的作用域是调用 eval() 处的作用域。因此,eval() 里任何的变量定义、修改,都会在函数结束后被保留。
3.
输出结果
执行结果
正常调用
回调函数
二、包含函数
三、命令执行函数
1 exec()
执行一个外部程序
.2 passthru()
执行外部程序并且显示原始输出
3 proc_open()
执行一个命令,并且打开用来输入/输出的文件指针
4 shell_exec()
四、文件操作函数
任意文件读取,写入, 删除往往是上面几个函数受到了控制(当然还有其他函数)
读取:可以读取配置等文件,拿到key
写入:可以写入shell代码相关的内容
删除:可以删除.lock文件而可以重新安装覆盖
可以读取百度的内容,输入一些
执行之后的结果
五、特殊函数
bool in_array (mixed needle, arrayhaystack [,bool
s
t
r
i
c
t
=
F
A
L
S
E
]
)
在
h
a
y
s
t
a
c
k
中
搜
索
n
e
e
d
l
e
,
如
果
没
有
设
置
s
t
r
i
c
t
则
使
用
宽
松
的
比
较
。
该
函
数
有
一
个
特
性
,
比
较
之
前
会
进
行
自
动
类
型
转
换
i
n
a
r
r
a
y
(
strict=FALSE]) 在haystack中搜索needle,如果没有设置strict则使用宽松的比较。 该函数有一个特性,比较之前会进行自动类型转换 in_array(
strict=FALSE])在haystack中搜索needle,如果没有设置strict则使用宽松的比较。该函数有一个特性,比较之前会进行自动类型转换inarray(a,array(1,2,3)}的返回值是真。
输出提交的内容来判断他是不是字符串
用intval转换
将变量V设置为1,来判断变量的值是否在数组里,与数组的值是否相等,输出结果
常见危险函数及特殊函数(一)
最新推荐文章于 2024-07-25 08:36:21 发布