sqlmap防御以及文件读写

一.防御  

过滤 

1.使用过滤函数 

$email = filter_var($_POST['email'], FILTER_VALIDATE_EMAIL);

if ($email) { // input is a valid email address }

else { // input is not a valid email address

使用 filter_var() 函数和 FILTER_VALIDATE_EMAIL 过滤器来验证用户输入是否为有效的电子邮件地址,从而减少了发生 SQL 注入攻击的概率

2.过滤和转义用户输入 

$username = mysqli_real_escape_string($connection, $_POST['username']);

$password = mysqli_real_escape_string($connection, $_POST['password']);

$query = "SELECT * FROM users WHERE username='" . $username . "' AND password='" . $password . "'"; $result = mysqli_query($connection, $query);

使用 mysqli_real_escape_string() 函数对用户输入进行了转义。将转义后的值插入 SQL 查询字符串中,可以有效地防止 SQL 注入攻击。

布置waf 和安全设备 

避免拼接方式工造sql语句 

文件读写的条件 

1.root权限 

2.绝对路径 

3.项secure_file_priv

案例 

读取文件   load_file()函数 

and 1=2 union select 1,load file("c:\\windows\\system32\\drivers\\etc\\hosts"),3

写入  into outfile

and 1=2 union select 1,"",3 into outfile "/var/www/html/1.php"    一句话木马       

你可能感兴趣的:(web10大漏洞,数据库,sql)