gpt4 book ai didi

php - MySQL - ORM Idiorm - 防止 SQL 注入(inject)

转载 作者:行者123 更新时间:2023-11-30 23:58:43 25 4
gpt4 key购买 nike

我使用 PHP 并使用名为 Idiorm 的 ORM 进行 SQL 调用.

请求可能如下所示:

$person = ORM::for_table('person')->create();
$person->name = $_POST['name'];
$person->age = $_POST['age'];
$person->save();

它工作得很好,但它可能无法抵御 SQL 注入(inject)?解决此问题的正确/最佳方法是什么?例子?

最佳答案

来自他们的 readme :

Features

  • Built on top of PDO.
  • Uses prepared statements throughout to protect against SQL injection attacks.

但是,对于表名it says

Note that this method *does not escape its query parameter and so the table name should not be passed directly from user input.*

同样适用于限制、排序和分组,因此对于那些你需要考虑替代方法(例如只让 ascii-7 字符通过,例如)。如果你需要这样做,限制只是整数,所以你可以做 ctype_digit查看。对于排序和分组,您可以检查字母数字,假设您的列名中没有任何其他内容。这可以用 ctype_alnum 来完成.

但是你在那里的查询应该没问题,因为它没有这些。

当然,你不应该只相信它 - 测试它。

关于php - MySQL - ORM Idiorm - 防止 SQL 注入(inject),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13758353/

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