php防止sql注入以及xss跨站脚本攻击
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了php防止sql注入以及xss跨站脚本攻击相关的知识,希望对你有一定的参考价值。
参考技术A 1.post数据封装转义函数 防sql注入 eag:addslashes($username);addslashes($password);
eag:防止sql注入函数封装
function deepslashes($data)
#判断$data的表现形式 并且需要处理空的情况
if(empty($data))
return($data);
#高级简写 return is_array($data) ? array_map('deepslashes',$data) : addslashes($data);
#初级写法
if(is_array($data))
#递归循环遍历处理多维数组
foreach ($data as $v)
return deepslashes($v);
else
#单一变量
return addslashes($data);
#初级写法
2.get数据
指url 传参数导致sql发生改变
解决方案
①强制转换,使用函数intval 或者 数据类型 的关键字int
②隐式转换,通过运算,只需要+0即可
3.xss跨站脚本攻击
指恶意攻击向web页面插入html、js标签导致页面出现错误
解决方案
转义标签'<' '>'即可,有以下php函数可解决
htmlspecialchars 函数 和 htmlentites函数
eag:
function deepslashes($data)
#判断$data的表现形式 并且需要处理空的情况
if(empty($data))
return($data);
return is_array($data) ? array_map('deepslashes',$data) : htmlspecialchars ($data);
Xss Csrf DDOS sql注入及防范
Xss攻击是跨站脚本工具
Csrf攻击是跨站请求伪造
sql注入
DDOS流量攻击
防止xss脚本攻击:
XSS攻击即跨站脚本攻击,通过篡改网页,注入恶意的HTML脚本,控制 用户浏览器进行恶意操作的一种攻击。
防止: script注入,转义过滤script标签。Htmlentities(把字符串转为html实体)
防止csrf跨站请求伪装:
CSRF的防御可以从服务端和客户端两方面着手,防御效果是从服务端着手效果比较好,现在一般的CSRF防御也都在服务端进行。
1:.Cookie Hashing(所有表单都包含同一个伪随机值):
2:验证码
3:One-Time Tokens(不同的表单包含一个不同的伪随机值)
防止sql注入:
1执行sql语句是使用addslashes进行sql语句转换
2 sql语句书写尽量不要省略双引号和单引号
3 过滤掉sql语句里的关键词 :update insert delete select *
4 PHP配置文件中设置register_global为off,关闭全局变量注册
5 控制错误信息 不要把错误信息输出到浏览器上 应保存在错误日
防止DDOS流量攻击:
1 使用工具:DDoS deflate . 自动查封IP.
2 解析域名到127.0.0.1 让攻击方自己攻击自己
3 把网站做成静态页面
4 限制S YN/ICMP流量
以上是关于php防止sql注入以及xss跨站脚本攻击的主要内容,如果未能解决你的问题,请参考以下文章