4

有没有办法将 mysql 查询从一个页面安全地传递到另一个页面?

基本上,我有一个由 mysql 查询生成的项目列表,并且仅限于 5 个项目。我想在底部添加一个“更多”链接,将用户带到一个显示相同列表但没有 5 项限制的页面。通常我会将一组参数传递给“更多”页面,我可以使用这些参数来重新创建查询,但由于列表可以由大量和多样化的查询生成,这非常困难。

所以我想知道是否有一种方法可以安全轻松地将整个 mysql 查询从一个 php 页面传递到另一个页面。例如,有没有办法做到这一点,当您单击一个链接时,查询存储在一些数据库中,并为其分配了一个 ID,然后只需将 ID 传递到下一页。

4

3 回答 3

3

“将查询从一个页面传递到另一个页面的安全方法”是根本不传递它。将查询视为数据并在页面之间传递它们是意外创建安全漏洞的一种非常好的方法。

您生成查询的逻辑已经存在,因此只需将该逻辑提供给两个页面即可。这通常是通过require()将具有共享代码的文件放入两个页面的文件中来完成的。

或者,只需向已经生成查询的页面添加一个选项,以显示完整的项目集,而不仅仅是一个子集——无需完全独立的页面。

于 2012-08-08T03:30:38.620 回答
1

您可以使用会话来传递数据,而不会“逃离”后端领域。

由于查询可能来自许多地方,您可能需要通过一些任意标识符键对数据进行索引,并将其传递到 URL 中。

更新

如果站点是公开的(即不需要登录),会话会阻止与其他人轻松共享页面。

在这种情况下,您应该有一种方法来识别所有查询,无论是使用数据库还是从代码库本身(可能使用命名约定);然后通过查询参数发送参数。

于 2012-08-08T03:30:08.210 回答
0

如果不能使用会话,则使用私钥对查询进行加密,base64 对其进行编码,并将其放在页面上的隐藏输入字段中。

于 2012-08-08T03:31:40.373 回答