首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >为什么在基于Oracle的to_char中执行0除法时使用SQLi?

为什么在基于Oracle的to_char中执行0除法时使用SQLi?
EN

Database Administration用户
提问于 2023-01-23 10:43:52
回答 1查看 63关注 0票数 0

对于基于条件错误的SQLi,我们需要编写to_char( 1/0 ),而不是像MYSQL那样直接编写1/0,这背后的原因是什么?例如,

甲骨文:

代码语言:javascript
复制
SELECT CASE WHEN (YOUR-CONDITION-HERE) THEN TO_CHAR(1/0) ELSE NULL END FROM dual

微软:

代码语言:javascript
复制
SELECT CASE WHEN (YOUR-CONDITION-HERE) THEN 1/0 ELSE NULL END

参考资料:https://portswigger.net/web-security/sql-injection/cheat-sheet#conditional-errors

EN

回答 1

Database Administration用户

发布于 2023-01-23 15:45:12

case when表达式的第一个可能结果决定输出类型。所有潜在的结果都必须符合相同的输出类型。您可以使用to_char或强制转换来告诉甲骨文剩下的选项也是varchar2

票数 0
EN
页面原文内容由Database Administration提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://dba.stackexchange.com/questions/322433

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档