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

时间:2012-08-08 03:26:33

标签: php mysql

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

基本上,我有一个由mysql查询生成的项目列表,仅限于5个项目。我想添加一个"更多"底部的链接会将用户带到显示相同列表但没有5项限制的页面。通常情况下,我会将一组参数传递给"更多"我可以用来重新创建查询的页面,但是由于列表可以由大量查询生成,所以这很难。

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

3 个答案:

答案 0 :(得分:3)

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

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

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

答案 1 :(得分:1)

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

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

<强>更新

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

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

答案 2 :(得分:0)

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