SQL Inject注入漏洞防范/sqlmap工具使用入门及案例介绍/XSS基本概念和原理介绍/反射型XSS、存储型XSS漏洞实验演示和讲解/nmap下载安装

SQL Inject注入漏洞的防范(以摘录为主)

SQL Inject注入漏洞的防范可分为两部分:代码层面和网络层面。
代码层面:1.对输入进行严格的转义和过滤。2.使用预处理和参数化
网络层面:1.通过WAF设备启用防SQL Inject注入策略(或类似防护系统)
2.云端防护(360网站卫士,阿里云盾等)
PHP防范转义+过滤:以php为例,可以写一个函数对前端输入进来的数据进行转义,将里面的特殊符号用mysql提供的方法进行转义例如转义:mysqli_real_escape_string($link, $data);
过滤:str_replace("%"," “, $_POST[‘username’]),把post里面的数据里面含有%的替换成空.
由于采用数据库的黑名单的形式进行转移过滤,由于代码升级较快,转义和过滤会有所疏忽,所以在sql注入防护不推荐使用。
推荐使用预处理和参数化的方法,以php为例有PDO预处理的方法,可以通过它提供的方法去操作数据库。
$username= $_GET[‘username’];
$password= $_GET[‘password’];
try{
$pdo=new PDO(‘mysql:host=localhost;dbname=ant’, ‘root’,‘root’);
$sql=“select* from admin where username=? and passowrd=?”;
$stmt= $pdo->prepare( $sql);//先不传参数,先预处理
// var_dump( $stmt);
$stmt−>execute(array( $username, $password));
//这个时候在把参数传进去, 以索引数组的方式传进去, 而不是拼接, 就成功防止了注入
}catch (PDOException $e){
echo $e->getMessage();
}
?>
sql注入漏洞的产生是因为前端传进来的数据被拼接到了后台的数据库中,在PDO中写sql的时候不会将参数传进去,而是用占位符去写这个参数,然后在跟数据库交互的时候会先用占位符代替的语句去和数据库去交互,然后进行一个预处理,将sql进行编译和执行,这个时候再把参数传进去。
这是推荐的做法。
在网络防护层面:在web应用服务器前部署WAF设备:topo 防火墙会将恶意代码识别出并阻断。
为保证安全需要同时推进预处理的部署和防火墙的建设。<

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

黑黑黑白白白

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值