当前位置: 首页 > 面试题库 >

解释如何在Rails中利用order子句

马清野
2023-03-14
问题内容

我很难理解Rails SQL Injections上此网站上的此部分的工作方式。

在ORDER
BY子句中利用SQL注入是很棘手的,但是CASE语句可用于测试其他字段,将sort列切换为true或false。尽管可能需要执行许多查询,但攻击者可以确定该字段的值。

有人可以解释吗?他们说“将排序列切换为true或false”这一点很难理解,因为我不知道如何使攻击者揭示另一个字段的值。


问题答案:

如果您要确定某个字段的值,那么您知道该字段位于表中,但未在选择中返回,则可以按以下顺序迭代该字段的值,直到获得该值:

 ORDER BY CASE WHEN variableIdLikeToDiscover < 'N' then 1 else 0 end

然后查看它是否大于或小于“ N”。如果小于,则可以尝试以下操作:

 ORDER BY CASE WHEN variableIdLikeToDiscover < 'F' then 1 else 0 end

依此类推,以此类推,直到您(最终)确定了价值。



 类似资料:
  • 问题内容: 是否可以通过配置在Rails 3.2中全局禁用新的解释功能?我正在使用activerecord-sqlserver-adapter 3.2.1,并且gem的解释(显示计划)部分似乎存在一些错误。 问题答案: 引用http://weblog.rubyonrails.org/2011/12/6/what-s-new-in-edge-rails- explain/ 新的应用程序得到 在。Ac

  • 在cassandra中创建表时,我们可以给出如下排序的聚类键。 当我们将数据插入到该表中时,根据cassandra文档,记录将基于聚类键进行排序。

  • 在阅读了一篇关于在协议中使用的讨论之后,我做了一个实验(参见下面的代码)。我认为代码将无法编译,因为根据我的理解,要使类符合协议,它应该具有,这是我没有定义的。但代码实际上起作用了。 我想知道为什么?谢谢你的解释。

  • 问题内容: 我想在MySQL查询中通过Union使用order。我正在根据基于距离的表从不同的标准中获取不同类型的记录,该表基于距离在我的网站上进行搜索。第一个选择查询返回与精确位置搜索有关的数据。第二个选择查询返回与距搜索位置5公里以内的距离有关的数据。第三个选择查询返回与距搜索位置5-15公里之内的距离有关的数据。 然后,我使用union合并所有结果,并在带有分页的页面上显示。在适当的标题下,

  • 问题内容: 我已经开始探索Node.js,并编写了许多演示Web应用程序,以了解Node.js,Express.js,jade等的流程。 但是我最近遇到的一件事是,该语句作为每个函数和每个文件中的第一行。 Node.js对它的解释如何? 问题答案: 基本上,它启用严格模式。 严格模式是一项功能,使您可以在“严格”的操作环境中放置程序或功能。在严格的操作上下文中,方法窗体像以前一样将此绑定到对象。函