gpt4 book ai didi

php - 从数据库中删除内容,安全预防措施

转载 作者:可可西里 更新时间:2023-11-01 13:23:27 24 4
gpt4 key购买 nike

更新:

我像 Berdir 告诉我的那样添加了 CSRF 保护,借助下面的链接使我的应用程序再次运行。但是.. 我不太确定我现在做了什么 :D 这将如何使我的应用程序更安全?我现在在我的 ajax 代码中得到一个 cookie 值,这让我特别烦恼,因为我必须通过我的 ajax 调用传递它。否则它就不起作用。这不是泄露了一些关于 cookie 的重要信息吗?或者我只是偏执。谢谢!

http://aymsystems.com/ajax-csrf-protection-codeigniter-20

//旧的嗨。

在我正在构建的这个网络应用程序中,我有一个功能可以添加关于某些主题的“提示和技巧”。这些页面只能由具有管理员角色的帐户添加。但是,我也希望能够删除这些页面。 (总是得心应手,对)。因为我使用的是 CodeIgniter,所以我只想制作一个 Controller 函数,它接受一个 ID,并将这个 ID 传递给模型,在这个模型中,与该 ID 对应的页面将从数据库中删除。

只是为了说明这一点:

Controller :

public function del_content($id)
{
$this->content_model->del_content($id)
}

型号:

public function del_content($id)
{
// database code which I can't be bothered to look up now
// something like $this->db->where(), $this->db->delete()
}

这一切都非常简单,但我担心它可能简单了。这对我来说似乎不太安全,是吗?由于您可以从浏览器的 URL 地址栏调用该函数,因此您基本上可以通过它删除整个内容表。 (因为您将为 ID 为 3 的项目执行 http://mywebsite/controller/del_content/3)。当然,只有管理员帐户才能访问该功能,但仍然..

我以前从未编写过这样的程序,因此从来不必考虑在这种情况下我应该采取的安全措施。有没有人愿意给我一些我应该注意的事情,也许还有一些想法,建议,如何使它更安全?

非常感谢!

最佳答案

您需要防范的是CSRF攻击。简而言之,它们是通过 GET 或 POST 请求诱骗管理员访问特定 URL 的攻击。<​​/p>

做到这一点的典型方法是 token 。当生成指向删除操作的链接或表单时,您会生成一个发送给客户端的 token (作为隐藏表单字段或作为 GET URL 的一部分),还将它存储在服务器上以供当前 session 和何时使用该操作已执行,您比较提交的 token 和存储的 token ,只有在它们匹配时才继续。

许多框架/系统都以某些方式内置了此功能,例如,所有使用 Drupal 中的表单 API 生成的表单都可以防止此类攻击。

关于php - 从数据库中删除内容,安全预防措施,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5930870/

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