假设您有 3 张桌子:
User Blog Post
UserId BlogId PostId
Username BlogName PostTitle
UserId BlogId
假设现在博客所有者尝试访问EditPost.aspx?ID=51
。您如何保护此查询字符串,以便只有原始博客所有者才能看到真正的帖子。例如。用户 Jon 没有开始编辑用户 Mary 的帖子?
我有几个选择:
1)我加密了查询字符串,这显然不是 100% 安全的,但可以完成这项工作。
2)我每次都检查查询字符串中的 PostID 是否确实是登录用户的 Post,方法是根据我在 Session 中拥有的 UserID 检查它。这样做的缺点是,如果我只有 3 个表,这是可以的,但如果我有一个包含 10-12 个表的表层次结构,并且我在第一个表中有用户 ID,我实际上正在查询第 12 个表,我需要检查通过进行 12 次连接一直回到顶部,以实际查看该东西是否“真的”是他的。
问题是您真正在您的网站中使用其中哪一个并且工作是否良好?