1

我想开发一个可排序的表,当用户单击标题列时,该表将通过 JSON 检索数据并显示它。为了使其工作,我必须将数据库列和数据库表名称等信息与列一起放置。当用户点击它时,这些值将被传递到服务器并检索更新的数据。

所以我的问题是,暴露数据库表和表列名是否安全?我一直在考虑使用 php session 来存储这些信息,并且只公开链接到信息的 session id。但问题是,如果我这样做,如果用户打开我网站的多个选项卡,排序将不起作用。

你知道其他更好的方法吗?

谢谢。

4

2 回答 2

0

Datatables 是一个 jQuery 插件,它几乎可以完成您想要做的事情,并且还提供了许多不同的功能。它允许您按列对表格进行排序。数据表的一些示例:http: //datatables.net/examples/

您还可以使用 ajax 获取数据。看看这个例子:http ://datatables.net/release-datatables/examples/ajax/ajax.html

人们使用 20+ 百万行的数据表,看看http://datatables.net/release-datatables/examples/data_sources/server_side.html

于 2013-10-14T07:57:07.367 回答
0

只要有可能,我会尝试在 GET/POST 中使用整数而不是基于文本的键,默认情况下你是安全的。

您真的不需要将密钥保存到会话中,只需将它们翻译成:

$columns = array(
  '1' => 'UserID',
  '2' => 'FirstName
  ...
)

$order = 1;
if (isset($_REQUEST['order'])) $order = (int) $_REQUEST['order'];
$orderName = $columns[$order];
//beware the bug of unset key
//the ugly sql
$sql = 'select .. from .. order by ' . $order;

在 html-grid 中,使用

 <a href="?order=2"/>FirstName</a>

那将是我能想到的最简单和最安全的解决方案。

问候,

于 2013-10-14T08:20:57.997 回答