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" 一句话木马

相关推荐
六毛的毛14 分钟前
FastAPI入门:中间件、CORS跨域资源共享、SQL数据库
数据库·中间件·fastapi
菜萝卜子14 分钟前
【Go】新版GORM自动字段映射规则
数据库·golang
哥哥还在IT中1 小时前
TiDB/MongoDB/Taosdb存储引擎概览
数据库·mongodb·tidb
vision_wei_1 小时前
Redis中间件(二):Redis协议与异步方式
网络·数据库·c++·redis·分布式·缓存·中间件
若梦plus1 小时前
PostgreSQL数据库基础
前端·数据库
茁壮成长的露露1 小时前
openGauss单实例安装
数据库·gaussdb
l1t1 小时前
利用DeepSeek改写并增强测试Duckdb和sqlite的不同插入方法性能
python·sql·sqlite·duckdb
代码的余温1 小时前
Redis内存耗尽时的应对策略
数据库·redis·缓存
Asu52021 小时前
思途AOP学习笔记 0806
java·sql·学习·mybatis
老华带你飞2 小时前
健身管理|基于java的健身管理系统小程序(源码+数据库+文档)
java·数据库·小程序·vue·论文·毕设·健身管理系统小程序