Rumah >pembangunan bahagian belakang >masalah PHP >PHP中常用函数的漏洞有哪些?

PHP中常用函数的漏洞有哪些?

慕斯
慕斯asal
2021-06-18 16:19:112519semak imbas

上篇文章给大家介绍了《PHP中如何进行文件上传?我们需要注意什么?》,本文继续给大家介绍PHP中常用函数的漏洞有哪些?有一定的参考价值,有需要的朋友可以参考一下,希望对大家有所帮助。

PHP中常用函数的漏洞有哪些?

PHP中常用函数的漏洞:

  • extract变量覆盖漏洞

  • extract函数:将变量从数组导入当前符号表。在一些mvc框架中会有它的踪影

  • extract函数的定义: int extract(array,extract_ rules,prefix)

  • extract0函数将检查每个键名是否为合法的变量名,同时也检查和符号表中已存在的变量名是否冲突。对不合法和冲突的键名的处理将根据此参数决定。

extract_rules :

  • EXTR_ OVERWRITE -默认。如果有冲突,则覆盖已有的变量。

  • EXTR_ SKIP -如果有冲突,不覆盖已有的变量。

  • EXTR_ PREFIX. SAME -如果有冲突.在变量名前加上前缀prefix.

  • EXTR_ PREFIX. ALL -给所有变量名加上前缀prefix.

  • EXTR_ PREFIX. INVALID -仅在不合法或数字变量名前加上前缀prefix.

  • EXTR_ IF. EXISTS -仅在当前符号表中已有同名变量时.覆盖它们的值。其它的都不处理。

  • EXTR_PREFIX_IF _EXISTS -仅在当前符号表中已有同名变量时.建立附加了前缀的变量名其它的都不处理。

  • EXTR_REFS -将变量作为引用提取。导入的变量仍然引用了数组参数的值。

我们以代码为例演示extract函数对当前覆盖表的影响:

我们首先建立一个文件,比如当前覆盖表中有一个name,然后我们输出这个变量,

<?php
$name = &#39;好久不见&#39;;
echo $name;
?>

代码结果如下:

14.JPG

然后我们使用extract函数,然后我们定义一个数组,默然情况下是会覆盖当前覆盖表中的变量,也就意味着我们刚刚写的《好久不见》会被覆盖掉,代码如下:

<?php
$name = &#39;好久不见&#39;;
extract(array(&#39;name&#39;=>&#39;再见&#39;));
echo $name;
?>

代码结果如下:

15.JPG

推荐学习:《PHP视频教程

Atas ialah kandungan terperinci PHP中常用函数的漏洞有哪些?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn