在不取消当前 SQL 语句的情况下创建新的 SQL 语句
Posted
技术标签:
【中文标题】在不取消当前 SQL 语句的情况下创建新的 SQL 语句【英文标题】:Making new SQL Statment without canceling current one 【发布时间】:2016-11-05 15:40:06 【问题描述】:有没有办法在编写SQL语句时完全改变它:
假设我有这个:
SELECT * from `table1` WHERE `column1` LIKE '%%'
但现在我决定我实际上想要SELECT
一些完全不同的东西,比如table2
,例如,我可以继续写吗(即不删除我到目前为止写的内容并且不做一个全新的声明(由分号)) 仍然得到table2
的内容?
(我通常会通过写SELECT * from table2
得到)?
我问是因为我对 SQL 注入很着迷,想知道你能用它走多远。
【问题讨论】:
查询目前是如何构建的? @Tim 如果他在table1
附近点击鼠标会怎样...接近 1 部分
假设您可以输入插入在两个%
符号之间的搜索查询。
@Drew 我更多地考虑将table1
替换为table1 INNER JOIN table2 ON t1.id = t2.id
,但他的代码可能 可以防止这种情况发生,假设他使用的是正确的工具。
这不是一个关于sql注入的问题,一个新鲜的问题,当这里的卷已经写了关于注入的楔入时,可以吗?
【参考方案1】:
不,您不能向后更改查询。 sql注入就是从实际注入的地方开始修改查询。
【讨论】:
以上是关于在不取消当前 SQL 语句的情况下创建新的 SQL 语句的主要内容,如果未能解决你的问题,请参考以下文章
在不提交的情况下测试 (JUnit) SQL DELETE 和 UPDATE 语句
在不访问 SQL Server Profiler 的情况下分析 ADO.NET 语句
如何在不更改现有数据位置的情况下添加新的 SQL Server 分区范围来容纳未来的数据?