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跨站脚本攻击的主要内容,如果未能解决你的问题,请参考以下文章

如何检测SQL注入技术以及跨站脚本攻击

Xss Csrf DDOS sql注入及防范

来自阿里云的PHP实现的防止跨站和xss攻击代码,测试有用

xss攻击(跨站脚本)

记录一次网站漏洞修复过程:第二轮处理(拦截SQL注入跨站脚本攻击XSS)

SpringBoot 如何防护 XSS 攻击 ??