DataTables 隐藏数据源
DataTables Hide Data Source
我有一个 DataTables table 从
加载数据
$table.dataTable({
ajax: 'path/to/getData.php',
});
getData.php
进行一些数据库调用和 returns json_encode()
输出数组,DataTables 能够很好地解析它。
但是,如果有人去 http://mywebsite.com/path/to/getData.php,他们将能够看到所有原始 JSON 数据并可能抓取它。
有没有办法阻止人们访问 getData.php
除非它被 dataTables 调用?
我相当确定这必须是对 PHP 代码的修改,因为任何人都可能通过 Javascript.
看到我的解决方法
我最终使用了 $_SESSION
个变量。
在包含 table 的页面的开头,我设置了 $_SESSION['secure'] = true;
在我的 getData.php
文件中,我有:
if($_SESSION['secure']) {
echo json_encode($output);
$_SESSION['secure'] = false;
}
重置 secure
会话变量。
我有一个 DataTables table 从
加载数据$table.dataTable({
ajax: 'path/to/getData.php',
});
getData.php
进行一些数据库调用和 returns json_encode()
输出数组,DataTables 能够很好地解析它。
但是,如果有人去 http://mywebsite.com/path/to/getData.php,他们将能够看到所有原始 JSON 数据并可能抓取它。
有没有办法阻止人们访问 getData.php
除非它被 dataTables 调用?
我相当确定这必须是对 PHP 代码的修改,因为任何人都可能通过 Javascript.
看到我的解决方法我最终使用了 $_SESSION
个变量。
在包含 table 的页面的开头,我设置了 $_SESSION['secure'] = true;
在我的 getData.php
文件中,我有:
if($_SESSION['secure']) {
echo json_encode($output);
$_SESSION['secure'] = false;
}
重置 secure
会话变量。