PHP双引号小隐患

function    test()
{
echo "hello";
}
echo "${@test()}";
echo "${@phpinfo()}";
// 原理:
$a = ‘b‘;
$b = ‘a‘;
echo $$a;

<?php
$a = ‘hello‘;
$$a = "test";
echo "${$a}";
?>  这样输出test

<?php
$a = ‘hello‘;
$$a = "test";
echo "$$a";
?>这样输出hello;

时间: 2024-10-06 18:56:26

PHP双引号小隐患的相关文章

PHP双引号的隐患

PHP很多语法特性会让攻击者有机可乘,例如PHP会检测双引号中的变量.执行如下代码: 1 function test() 2 { 3 echo "abc"; 4 } 5 echo "${@test()}"; 6 7 //或者 8 echo "${@phpinfo()}"; 原理如下: 1 $a = 'b'; 2 $b = 'a'; 3 4 echo $$a; //a 以上就利用了PHP可变变量,双引号{}可解析双引号内的变量内容特性制造出来的小麻

linux 单引号,双引号,反引号的小总结。

还是老惯例说说事情的起因,由于最开始对linux下面的各种引号并不是特别敏感,导致有一天我在添加数据库字段的时候出现的错误,当时出现错误的原因是我在最外层使用了单引号进行包裹,然后一句话里面需要转意的地方无法被转意导致了错误. 下面还是从单引号开始介绍起吧 单引号: 为了保护文本不被转换,除了她本身,就是说除去单引号本身之外,在单引号内的所有文本都是原样输出. echo 'export' 得到结果export echo '$export' 得到结果$export 从这里看到export并没有被执

shell脚本中grep时关于变量带双引号的小问题

今天在写一个shell脚本的时候,有一个操作是使用grep命令在一个文件中搜索指定内容.指定内容存放在文件中,使用一个变量去获取文件中内容,再传到grep命令中去. 这段代码如下: for target in `cat content.txt`do     grep $target test.txt >>result.txtdone content.txt文本中的内容为: "域\[2\]" "域\[3\]" "域\[4\]" 因为使用

JavaScript基础 输出含有双引号/单引号的字符串

镇场诗: 清心感悟智慧语,不着世间名与利.学水处下纳百川,舍尽贡高我慢意. 学有小成返哺根,愿铸一良心博客.诚心于此写经验,愿见文者得启发.------------------------------------------ code: 1 <!DOCTYPE html> 2 <html> 3 <head> 4 <meta http-equiv="Content-Type" content="text/html; charset=ut

JS中单引号/双引号以及外部js引入的一些问题

一.单引号和双引号的用法的问题 在JavaScript中可以使用单引号.双引号,二者也可以混合使用.但是,身为菜鸟的我,却碰到了一些引号的使用问题. <body> <div style="border:1px solid red; height:150px;width:150px;" onclick="alert("test");" id="test">This is a test. </div&

linux bash shell中,单引号、 双引号,反引号(``)的区别及各种括号的区别

一.单引号和双引号 首先,单引号和双引号,都是为了解决中间有空格的问题. 因为空格在Linux中时作为一个很典型的分隔符,比如string1=this is astring,这样执行就会报错.为了避免这个问题,因此就产生了单引号和双引号.他们的区别在于,单引号将剥夺其中的所有字符的特殊含义,而双引号中的'$'(参数替换)和'`'(命令替换)是例外.所以,两者基本上没有什么区别,除非在内容中遇到了参数替换符$和命令替换符`. 所以下面的结果:num=3echo '$num'$numecho "$n

Shell中的单引号(‘)双引号(”)和反引号(&#183;)

在bash中,$.*.?.[.].'.".`.\.有特殊的含义.类似于编译器的预编译过程,bash在扫描命令行的过程中,会在文本层次上,优先解释所有的特殊字符,之后对转换完成的新命令行,进行内核的系统调用. 其中,反引号类似于函数调用,而不仅仅是简单的文本替换及匹配. 命令行中,被单引号引用的部分,其中所有的特殊字符按照普通字符解释: 双引号引用的部分,仅解释$(美元符号).\(\n \t除外).`(反引号),解释后的文本仅按照普通文字处理(同单引号). 反引号相当于命令替换,引用的部分优先执行

Python3基础 print 用反斜杠输出单引号与双引号

镇场诗: 诚听如来语,顿舍世间名与利.愿做地藏徒,广演是经阎浮提. 愿尽吾所学,成就一良心博客.愿诸后来人,重现智慧清净体.------------------------------------------ code: >>> '这是一个单引号 \' ' result: "这是一个单引号 ' " code: >>> '这是一个双引号 \" ' result: '这是一个双引号 " ' ----------------------

第14课 单引号和双引号

1. 单引号和双引号 (1)C语言中单引号用来表示字符字面量(是个数值) (2)C语言中双引号用来表示字符串字面量(是个指针) ①'a'表示字符字面量(97),在内存中占用1个字节,'a'+1表示'a'的ASCII码加1,即'b' ②"a"表示字符串字面量(是个指针),在内存中占2个字了,"a"+1表示指针运算,指向"a"的结束符"\0" [实例分析]单引号与双引号的本质 #include <stdio.h> in