gpt4 book ai didi

php - 安全提交主键

转载 作者:行者123 更新时间:2023-11-29 08:24:43 24 4
gpt4 key购买 nike

我不太了解如何编写网页,所以我有以下问题。我有一个用户可以管理的 MySQL 数据库。我有两个表:人员、视频。

我希望我的页面让用户从人员表中选择一个人(例如按姓名),然后将此人与视频链接相关联。从数据库中选择人员很容易,

SELECT personID, name
FROM persons
WHERE name LIKE '%John%'

现在用户必须将视频链接插入到视频表中,该表具有外键 personID。

我可以在隐藏的 html 输入表单中的“选择”之后存储此人的主键,但我认为这不是很安全,因为他们可以编辑它?

我的问题是:您将在 select 和 insert 调用之间将这样的键值存储在哪里?将所有这些数据存储在 session 中是否更安全?

最佳答案

这种事情经常发生,完全没问题只要你不介意人们看到你的主键(如果它们是数字,就不应该有什么问题)担心)。

假设您正在从表中检索行列表,并以 HTML 形式显示它们。如果您希望每个表行都有一个“删除”按钮,用于从 DOM 和数据库中删除该行(例如通过 XMLHttpRequest),那么每行通常都有一个“id”属性,其中 id 是您要删除的行的主键值。

通常,您的主键是:

  • 表格中的 id 字段
  • 设置了 AUTO_INCRMENT 的字段

简而言之,为每个下拉菜单提供一个 data-id 属性,您可以通过 .data 选择器在 JavaScript 中访问该属性。这就足够了。只要确保您也保护自己免受 SQL Injection 的侵害即可并使用 PDO 和准备好的语句,就可以了。

为了获得额外的保护,并确保在提交之前没有人更改客户端的 data-id 属性,请检查 id 是否与 name 相对应 数据库中的字段,你就很出色了。

关于php - 安全提交主键,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18252578/

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