安全入门之PHP基础1

一、PHP的一些相关知识

1.PHP相关编码函数

  • ASCII编码
  • ord() 函数返回字符串的首个字符的 ASCII 值。
  • chr() 函数从指定的 ASCII 值返回字符。
  • URL编码
  • urlencode()函数便于将字符串编码并将其用于 URL 的请求部分,同时它还便于将变量传递给下一页。
  • urldecode()函数可以解码给出的已编码字符串中的任何 %##。 加号(’+’)被解码成一个空格字符。
  • DATA编码
  • base64_encode()函数是为了使二进制数据可以通过非纯 8-bit 的传输层传输。
  • base64_decode()函数是对 base64 编码的 data 进行解码。
  • HTML 实体
  • htmlspecialchars() 函数可以把预定义的字符转换为 HTML 实体。
  • htmlspecialchars_decode() 函数可以把预定义的 HTML 实体转换为字符。
  • 替换字符
  • str_replace() 函数以其他字符替换字符串中的一些字符(区分大小写)。
  • MD5
  • md5() 函数计算字符串的 MD5 散列,使用 RSA 数据安全,包括 MD5 报文摘要算法。
  • 又是一个小例子
  • 在网站根目录创建一个php文件,输入如下代码:
<?php
	$str1 = "SDM";
	echo "ord(): ".ord($str1)."</br>";
	echo "chr(): ".chr(83)."</br>"."</br>";
	
	$str2 = "SDM--你好啊";
	echo "urlencode(): ".urlencode($str2)."</br>";
	echo "urldecode(): ".urldecode('SDM--%E4%BD%A0%E5%A5%BD%E5%95%8A')."</br>"."</br>";
	
	$str3 = "这是一段测试文本";
	echo "base64_encode:" .base64_encode($str3)."</br>";
	echo "base64_decode:" .base64_decode('6L+Z5piv5LiA5q615rWL6K+V5paH5pys')."</br>"."</br>";
	
	$str4 = "This is some <b>bold</b> text.";
	echo "htmlspecialchars:" .htmlspecialchars($str4)."</br>";
	echo "htmlspecialchars_decode:" .htmlspecialchars_decode($str4)."</br>"."</br>";
	
	$str5 = "hello world!";
	echo "str_replace:" .str_replace("hello","My",$str5)."</br>"."</br>";
	
	$str6 = "SDM_MD5";
	echo "md5:" .md5($str6)."</br>";

?>
  • 页面展示:
    在这里插入图片描述

2.PHP序列化与反序列化

3.PHP连接数据库

1)建立数据库

  • 建立数据库可以直接在phpstudy上执行,也可以创建一个php文件输入如下代码:
<?php
	if(!$connect = mysqli_connect('localhost','root','123456')){
		die('erro!');
	}
	if(!$flag1 = mysqli_query($connect,'create database SDM')){
		echo 'creat database fail!'."</br>";
	}

2)创建表

<?php
	$sql = 'create table teacher(id int,name char(20) ,addr char(20))';
	if(!$connect = mysqli_connect('localhost','root','123456')){
		die('erro!');
	}
	if(!$flag1 = mysqli_select_db($connect,'SDM')){
		echo 'connect fail!'."</br>";
	}
	if(!$flag2 = mysqli_query($connect,$sql)){
		echo 'create fail!'."</br>";
	}
	mysqli_close($connect);
?>

3)插入数据并查询

<?php
	if(!$connect = mysqli_connect('localhost','root','123456')){
		die('erro!');
	}
	if(!$flag1 = mysqli_select_db($connect,'SDM')){
		echo 'connect fail!'."</br>";
	}
	if(!$flag2 = mysqli_query($connect,"insert into teacher (id,name,addr) values (1,'SDM','xiamen')")){
		echo 'insert fail!'."</br>";
	}
	if($result = mysqli_query($connect,"select * from teacher")){
		while($row = mysqli_fetch_array($result)){
		echo $row['id'] . " " . $row['name']. " ".$row['addr'];
		echo "</br>";
		}
	}
	mysqli_close($connect);
?>

4)绑定参数防SQL注入

  1. 创建一个php文件,输入如下代码:
<?php
	if(!$connect = mysqli_connect('localhost','root','123456')){
		die('erro!');
	}
	if(!$flag2 = mysqli_select_db($connect,'SDM')){
		echo 'connect fail!'."</br>";
	}
	$sql = 'select * from teacher where id = ?';
	$id = $_GET['id'];
	if($stmt = mysqli_prepare($connect,$sql)){
		mysqli_stmt_bind_param($stmt,'s',$id);
		mysqli_stmt_execute($stmt);
		mysqli_stmt_bind_result($stmt,$id,$name,$addr);
		while(mysqli_stmt_fetch($stmt)){
			printf("%d %s %s </br>", $id,$name,$addr);
		}
	}
	mysqli_stmt_close($stmt);
	mysqli_close($connect);
?>
  1. 在地址栏输入http://localhost/meiyong.php?id=1,其中meiyong是你创建的php文件名。
  2. 以这种绑定参数的方式传递值即可避免sql注入。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值