博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
PHP安全性
阅读量:4921 次
发布时间:2019-06-11

本文共 1905 字,大约阅读时间需要 6 分钟。

一、防sql注入

用户通过输入完整的字符,来和sql语句拼接成带有破坏性的sql语句,服务器执行该语句,造成破坏。

1使用mysql_real_escape_string()过滤数据,该方法在未来版本会淘汰

  

Query($sql));

  

2、使用PDO预处理语句

 

二、xss攻击

1、演示

  

  

2、用户在表单里输入恶意的代码(主要是js代码),来破坏网站页面,例如不断刷新页面的js代码

解决方式为过滤字符串

3、防止一:php自带方法是使用htmlspecialchars()函数

4、防止二:写一个过滤输入内容的方法

function clean_xss(&$string, $low = False){	if (! is_array ( $string ))	{		$string = trim ( $string );		$string = strip_tags ( $string );		$string = htmlspecialchars ( $string );		if ($low)		{			return True;		}		$string = str_replace ( array ('"', "\\", "'", "/", "..", "../", "./", "//" ), '', $string );		$no = '/%0[0-8bcef]/';		$string = preg_replace ( $no, '', $string );		$no = '/%1[0-9a-f]/';		$string = preg_replace ( $no, '', $string );		$no = '/[\x00-\x08\x0B\x0C\x0E-\x1F\x7F]+/S';		$string = preg_replace ( $no, '', $string );		return True;	}	$keys = array_keys ( $string );	foreach ( $keys as $key )	{		clean_xss ( $string [$key] );	}}

 

$str = $_POST["uid"];clean_xss($str); //如果你把这个注释掉,你就知道xss攻击的厉害了echo $str;

  

//$str = 'phpddt.com<meta http-equiv="refresh" content="0;">';//将此代码输入到表单里,如果不使用clean_xss()方法,会造成不断刷新网页

 

三、CSRF攻击(跨站请求伪造,XSRS)

1、可以理解为攻击者盗用你的身份,以你的名义发送恶意请求

2、演示

例如,一个人员(uid=“lisi”)登陆账户,此用户进行转账或消费活动

无标题文档

  

后端处理代码

Query($sql,1);}

  这样操作下来是一个合理的流程。

     但是,转账或消费完之后,不关闭此页面,将页面地址栏出的地址信息全部复制下来,例如:http://localhost/anquan/csrfcl.php?qian=100

再之后,自己新建一个页面,里面代码如下:

  最后,刷新此页面,账户中的余额会发生变化。

3、以上讲解,表单是以get形式传值,如果表单以post形式提交,CSRF攻击将以以下形式进行

 

 

  

Query($sql,1);}

  以上操作和get形式差不多,只不过提交方式不同,所以攻击方式为新建一个没有session的表单

 

解决思路是让伪造的表单不能使用

 

 

 

4、解决方法是在前端表单进行加密

 

//隐藏的加密信息

 

 后端服务器代码加密信息匹配

Query($sql,1); }}

  

 

5、另一种解决方法是加验证码(最重要的)

 

转载于:https://www.cnblogs.com/zst062102/p/5661073.html

你可能感兴趣的文章
robotframework连接mysql数据库
查看>>
iOS-远程通知
查看>>
Warcraft love Air Jordan 9 Olive
查看>>
memcached全面剖析—— 客户端选择(一致性哈希算法)
查看>>
米洛个人修炼术:情绪的四种常用处理方式,其实都是有问题的
查看>>
[翻译] Virtual method interception 虚方法拦截
查看>>
--- git-svn 使用环境和步骤
查看>>
flutter AS 打包
查看>>
Python webpy微信公众号开发之 回复图文消息
查看>>
ubuntu多版本cuda并存与切换【两个博客链接】
查看>>
html5新特性之DOCTYPE声明
查看>>
POJ 3299 Humidex 难度:0
查看>>
快速切题 poj3414 Pots
查看>>
Linux 常用命令
查看>>
五家共井(第1届第3题)
查看>>
c文件操作
查看>>
《Spring In Action》 读书笔记(2) -- bean装配 ...
查看>>
很好很強大..
查看>>
Oracle之子查询:Top-N问题
查看>>
PAT:1011. A+B和C (15) AC
查看>>