【发布时间】:2021-12-19 01:49:55
【问题描述】:
我有一个加载数据的 DataTables 表
$table.dataTable({
ajax: 'path/to/getData.php',
});
getData.php 进行一些数据库调用并返回输出数组的json_encode(),DataTables 能够很好地解析它。
但是,如果有人要去http://mywebsite.com/path/to/getData.php,他们将能够看到所有原始 JSON 数据并可能将其抓取。
有没有办法阻止人们访问getData.php,除非它被 dataTables 调用?
我相当肯定这必须是对 PHP 代码的修改,因为任何人都可能通过 Javascript 看到我的解决方法。
【问题讨论】:
-
您可以通过使用 HTML 源数据来避免在网页中使用 Ajax。使用 PHP 构建
<html>表的内容,并从 DataTable 定义中删除ajax选项。可能有几种不同的方法可以做到这一点 - 但here is one。另见HTML (DOM) sourced data。最终用户一次只能访问一页数据 - 并且需要从 HTML 中抓取数据,而不是从 JSON 响应中获取所有数据。 -
我最初是这样做的,但我有大约 5000 行,并且 DataTables 需要一些时间来处理所有内容。进行 ajax 调用要快得多。
-
我喜欢你的解决方案。附带说明一下,如果您在问题中告诉我们您已经尝试过什么,这会有所帮助 - 我们不会建议您已经知道不合适的东西。
标签: php jquery security datatables