0

我正在尝试创建一个 TODO 列表网络应用程序以用于自学目的。我使用 JavaScript 和 PHP。

在客户端,我的应用程序使用全局变量list_id来存储用户当前正在查看的列表的 ID。此 ID 与存储在数据库中的 ID 相同。因此,当用户更新列表中的某些内容时,它会发送list_id到 PHP 并更新数据库中的相应条目。

但我注意到这种方法非常不安全。也就是说,攻击者只需list_id在其 Web 浏览器的控制台中更新 的值,他们就可以通过更改 的值来修改数据库中的任何列表list_id

我应该如何防止这种情况,同时还要跟踪数据库中要更新的列表?

我想我可以将一个变量声明为 final/const,但我认为在 JavaScript 中没有跨浏览器的方法可以做到这一点。也许更好的方法是将 ID 声明为类中的私有变量,并确保没有更新该变量的方法。什么是最安全的方式?

4

1 回答 1

1

如果您使用登录系统,您应该检查用户会话 ID == 条目的所有者 ID,然后才允许对其进行编辑。

于 2013-04-13T12:46:52.903 回答