【发布时间】:2017-02-06 20:47:00
【问题描述】:
我有一张桌子,显然每一行都有 id。当用户点击表格行时,他会被带到显示完整数据的不同页面(不同页面实际上是加载事件后未隐藏的同一页面)。
我正在使用 jquery 获取点击事件,然后将 id 发送到 jquery load 并加载到数据中。
问题是这样的。如果使用该页面的人安装了 firebug,他可以操纵桌子上的 id 并可能访问他不应该访问的东西。
所以我不得不编写一个函数来检查该用户是否可以访问传入的 id。
function checkID($searchColumn,$userColumn,$tablename,$table_id,$user_id)
{
Global $db;
$query = "SELECT `{$userColumn}` FROM $tablename WHERE `{$searchColumn}`=?";
//echo $query;
$stmt = $db->prepare($query);
$stmt->bind_param('i',$table_id);
$stmt->execute();
$stmt->bind_result($myuser_id);
if($stmt->fetch())
{
if($myuser_id==$user_id):
return true;
else:
return false;
endif;
}
}
基本上,上面的函数根据用户是否可以访问该 id 给我一个真或假。
有没有更好的方法来检查服务器端的 firebug 是否对数据进行了操作?
基本上,我想确保发送到服务器的 id 与表中的 id 相同,并且没有被 firebug 操纵。尽管我的功能有效,但我一直在想也许有一个更简单的解决方案。专业人士是做什么的?
【问题讨论】:
-
请注意,现在的浏览器已经内置了开发者工具,因此用户甚至不必安装 Firebug。
-
我同意。 Firebug 就是一个例子。我知道那里还有其他人,但我使用的是 firefox,所以 firebug 是我所知道的。我正在寻找一种比我现在使用的更简单的方法来验证 id,并询问专业人员是做什么的?
-
两个注意事项:1.Firebug is going away,所以在某些时候你必须使用内置的Firefox DevTools。 2. 我提供了一个答案,但我仍然不清楚桌子的实际外观。
-
您应该为您的问题提供一个示例来说明问题。例如。不清楚用户点击某行时是同一个数据库表的数据还是明细表的数据。
-
我没有提供表格示例,因为每个人都知道 html 表格是什么样的。它有
并且每个表行都有一个 id。我的问题是,当您单击表格行时,jquery 会使用该 id,但它可能已被用户使用 firebug 或其他一些操作方式进行了操作。我想要最简单的方法来检查用户是否更改了 id。上述函数中唯一重要的是它通过检查 mysql 数据库中是否存在与 table id 代码对应的用户来检查 table id 是否有效。
标签: php jquery mysql firebug data-manipulation