当前位置: 首页 > article >正文

WEB安全--SQL注入--预防SQL注入的一些方法

一、使用预编译查询

        如PHP的PDO、JAVA的PreparedStatement,先用?占位,再将输入的字符当做参数填充到查询语句中;这一过程将输入的内容视为了字符串,无法通过单引号、注释符等逃逸出来,所以返回的查询结果只有两种true、false。

二、对用户输入过滤

        这个方式就比较好想到,在前端或后端代码中人为地写一些waf来处理前端接收到的内容。在对本身业务没有太大影响的前提下可以通过正则表达式过滤一些危险的字符(' -- # /**/ ())、函数(outfile()、updatexml())和关键字(select、where)等等。 

同时也可以根据当时的场景设置一些黑名单或白名单来排除不必要的隐患。

三、用户最小权限

        最小权限原则是一种安全性原则,指的是为了保护敏感数据和系统资源,用户应该被授予最小必需的权限。这意味着用户只能访问和执行他们工作所需的数据库对象和操作,而不是拥有对整个数据库的完全访问权限。
        使用最小权限原则可以减少潜在的安全风险和数据泄露的可能性。通过限制用户的权限,可以防止他们对数据库中的敏感数据进行未经授权的访问、修改或删除;如load_file()、into outfile等函数必须要root权限才能使用。

四、使用ORM框架

        ORM(对象关系映射)框架是一种将对象模型和关系数据库之间进行映射的技术。它允许开发人员使用面向对象的方式操作数据库,而不需要编写繁琐的SQL语句。ORM框架将数据库表映射为对象,将表的行映射为对象的属性,将表之间的关系映射为对象之间的关联。
        ORM框架的优点包括提高开发效率、减少代码量、简化数据库操作、提供对象级别的查询和持久化等。常见的Java ORM框架包括Hibernate、MyBatis和Spring Data JPA等。使用这种方式替代拼接查询,有效避免SQL注入。

五、 使用防火墙、IPS、IDS

        将它们部署在资产中,负责代理检测用户输入的流量和输出流量,能有效的识别危险语句和数据,并拦截流量封锁源IP。

        市面上的安全公司所推出的产品有很多,如深信服的AI赋能防火墙、长亭科技的雷池waf、360安全云等。

六、重视数据库密码和登录

        定期修改数据库管理员的密码,并且密码强度一定要高;如果没有特殊的业务或工作需求,禁止管理员远程登录数据库。

        


http://www.kler.cn/a/590110.html

相关文章:

  • Kafka 中的偏移量是什么?它解决了哪些问题?
  • HTML 基础夯实:标签、属性与基本结构的学习进度(二)
  • 数据可视化在特征分布对比中的应用
  • DataWhale 大语言模型 - 大模型技术基础
  • 重生之我在学Vue--第13天 Vue 3 单元测试实战指南
  • C语言文件管理详解(上)
  • 在 macOS Sequoia 15.2 中启用「三指拖动」并实现快速复制的完整指南 ✨
  • DeepSeek-R1学习
  • 如何用Python IP归属地查询API追踪网络活动?
  • 一周学会Flask3 Python Web开发-SQLAlchemy查询所有数据操作-班级模块
  • Ubuntu上部署Flask+MySQL项目
  • Redis 的特点
  • 兄弟们,不会服务器繁忙的DeepSeek R1/V3真满血版来了,支持网页版和API接入,免费500万tokens吃到饱,绝绝子!!!
  • 【Linux我做主】浅谈Shell及其原理
  • 学习 TensorFlow Lite 和 LSTM 时序模型的系统化路径
  • 低空经济腾飞:无人机送货、空中通勤,未来已来
  • 主流区块链
  • 芯谷78M05:三端正电压调节器的稳定之选
  • Redis调优:从老牛车到磁悬浮的飙车指南
  • 【北上广深杭大厂AI算法面试题】人工智能大模型篇...矩阵乘法GEMM!以及为什么说GEMM是深度学习的核心?