现在有一条SQL是这样的:
SELECT * FROM member WHERE username = params LIMIT 1
params是一个用户输入的变量,假设我已知所有库表字段,且只能执行一条SQL语句的情况下(项目的ORM执行的),params的值怎么填,会变成对数据库/数据表/表数据 有害的一条SQL
当前位置:网站首页>怎样做才能让这条SQL变成一条危险的SQL?
怎样做才能让这条SQL变成一条危险的SQL?
2022-08-01 23:11:00 【segmentfault】
其他答案1:
SELECT * FROM member WHERE username = "params" LIMIT 1params = '" or (delete * from member) or username="';
拼合就变成了SELECT * FROM member WHERE username = "" or (delete * from member) or username="" LIMIT 1
但是这是理论情况,实际上大部分框架都内置了一些处理,不是那么容易注入的,比如变量中的双引号自动做转义,这样就变成SELECT * FROM member WHERE username = "\" or (delete * from member) or username=\"" LIMIT 1,然后无害了。
简单来说,不要自己去拼SQL,而是利用对象提供的方法去处理就好了。php不是一般都$query->from('member')->where('username', params)->fetch()这样吗。
其他答案2:
SQL注入啊,用 预编译 解决
边栏推荐
- Create virtual environments with virtualenv and Virtualenvwrapper virtual environment management tools
- Nacos配置中心之加载配置
- 还在纠结报表工具的选型么?来看看这个
- IDEA入门看这一篇就够了
- 计算两点之间的距离
- 研发团队数字化转型实践
- Graph Theory - Strongly Connected Component Condensation + Topological Sort
- Oracle 数据库设置为只读及读写
- Use Jenkins for continuous integration, this knowledge point must be mastered
- PHP算法之有效的括号
猜你喜欢
随机推荐
IDEA common plugins
数据库表设计规则
CAKE:一个用于多视图知识图谱补全的可扩展性常识感知框架
chrome copies the base64 data of an image
excel change cell size
解决yolov5训练时出现:“AssertionError: train: No labels in VOCData/dataSet_path/train.cache. Can not train ”
美赞臣EDI 940仓库装运订单详解
还在纠结报表工具的选型么?来看看这个
6133. 分组的最大数量
Background project Express-Mysql-Vue3-TS-Pinia page layout-sidebar menu
6134. 找到离给定两个节点最近的节点-力扣双百代码
CF1703G Good Key, Bad Key
What is CICD excuse me
2022年最新河北建筑八大员(机械员)模拟考试题库及答案
excel edit a cell without double clicking
Calculate the angle of a line defined by two points
ROS2初级知识(8):Launching启动多节点
PostgreSQL 基础--常用命令
13、学习MySQL 分组
perspectiveTransform warpPerspective getPerspectiveTransform findHomography








