gpt4 book ai didi

php - 由当前登录的用户安全更新或插入行 'owned'

转载 作者:行者123 更新时间:2023-11-29 07:01:21 26 4
gpt4 key购买 nike

我正在尝试弄清楚如何构造这个数据库:

enter image description here

我有表 Users、表 Galleries 和表 Images

一旦用户登录,我将他的 ID 存储为 $_SESSION[user_id]


Galleries 有列 user_id 来存储它的所有者。

Images 有 gallery_id 来存储它们属于哪个画廊。

在客户端,当我想将新图像上传到 Images 时,我使用当前图库id 设置图像的 gallery_id

问题是有人可以通过更改 gallery_id 篡改数据并将图像上传到其他人的画廊。

我是否也应该在图像表中添加一个 user_id 并检查 $_SESSION[user_id] 或者为每个图像、图库和用户生成一个完全唯一的 ID并在客户端使用它,或者我可以加入所有 3 个表,然后检查 user_id

最佳做法是什么?谢谢

最佳答案

如果 images 表中的 gallery_id 列不是 NULL,那么您可以这样做

INSERT INTO images (gallery_id,image_file) 
SELECT id,'$image_file'
FROM Galleries
WHERE id = $gallery_id AND user_id = {$_SESSION[user_id]}

我很确定(未经测试)如果 $gallery_id 和 $_SESSION['user_id'] 不匹配任何行,SELECT 将返回 gallery_id 作为 NULL,因此 INSERT 将失败。

关于php - 由当前登录的用户安全更新或插入行 'owned',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10022919/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com