首页 > 解决方案 > 如何防止用户操纵 URL 中的查询字符串?

问题描述

假设我有一个类似的网站foo.com,并且让用户能够输入用户名,然后给你你的view计数。因此,如果usernamebar,则 url 看起来像foo.com/index.php?username="bar".

现在,如果我有另一个用户john,有什么可以阻止bar输入foo.com/index.php?username="bar"和获取他们的view计数?

标签: phphtml

解决方案


什么可以阻止 bar 进入 foo.com/index.php?username="bar" 并获得他们的观看次数?

简短的回答是什么。因为没有安全的(并且在不同的浏览器和系统上保持一致)方法来阻止用户编辑 url。但是...您可以检查当前登录的用户是否有权查看该数据。

如果您使用的是框架,则可能已经有 RBAC(基于角色的访问控制)的实现。所以你应该检查文档。

如果你不是并且你在一个纯 PHP 的项目中,你必须实现它。它会变得相当复杂。

这是 PHP 的缺点之一,用户可以随时更改请求(和表单内容),并且您应该始终检查数据是否正确。(这是大多数 PHP 程序员使用框架的原因之一)。


推荐阅读