Codeigniter - Active Records 是否容易受到 SQL 注入攻击?

2023-12-03

刚刚读过this堆栈溢出,因此让我想知道是否可以通过 CI 中的活动记录进行 SQL 注入。

在我的项目中的大多数地方,对于用户注册和用户配置文件更新,我都完成了如下 SQL 插入:

控制器 :

$name = $this->input->post('name');
$last_name = $this->input->post('last_name');
$age = $this->input->post('dob');

$user_data = array(
    'name' => $name,
    'last_name' => $last_name,
    'age' => $age
);

$this->user_model->add_user_function($user_data);

Model:

function add_user_function($data)
{
    $this->db->insert('user_table',$data);
    return;
}

就像上面 SO 链接中的示例一样,我的代码是否容易受到 SQL 注入攻击?
您能否举一个具体的例子,看看是否有可能损害我的系统,如果它存在,我该如何预防。


CodeIgniter 已为您的案例提供了 2 项安全功能。

  1. 对您的用户输入进行 XSS 过滤:输入类别它的方法有第二个布尔参数,它允许您通过 XSS 过滤器运行输入,以防您没有打开全局 XSS 过滤器。

  2. 对于 SQL 注入,使用绑定查询和活动记录是安全的,它将使您免受 SQL 注入的影响,因为框架会完成转义易受攻击的用户输入的所有工作。用户报告的活动记录中存在一些漏洞,但 CodeIgnitor 团队 (EllisLabs) 在后续版本中很快修复了这些漏洞

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Codeigniter - Active Records 是否容易受到 SQL 注入攻击? 的相关文章

  • 自动删除主键序列中的间隙

    我正在创建一个网页 该网页根据用户操作将数据存储到 MySQL 数据库中 数据库有很多行 行的主键是列 rowID 它只是按顺序对行进行编号 例如 1 2 3 4 用户可以选择删除行 问题是当用户删除最后一行以外的行时 rowID 中有一个
  • 尝试在 React 应用程序中连接到 MySQL 数据库时,无法读取未定义的属性(读取“查询”)错误

    我正在尝试连接到 MySQL 数据库并在单击按钮后在 React 应用程序中运行查询 一些它如何给出错误 我当前的代码如下所示 import mysql from mysql function App async function sync
  • 一个表可以有多个主键吗?

    我现在很困惑 也许你可以帮助我更好地理解这个问题 即一个表可以有两个主键 如果是 那么如何 如果没有 那为什么 您询问是否可以有多个主键field你当然可以 您只能有一个主键 但它可以包含唯一标识行所需的任意数量的列 创建表时使用类似这样的
  • 在上下文中提取搜索字符串

    我正在尝试执行 MySQL 查询 在上下文中提取搜索字符串 因此 如果搜索是 mysql 我想从 body 列返回类似的内容 下载后只需几分钟MySQL安装程序即可使用 这就是我现在得到的 但它不起作用 因为它只是从正文字段中获取前 20
  • 如何使用wireshark清晰捕获mysql查询sql

    因为我们使用远程开发Mysql服务器 所以不能轻易检查查询sql 如果使用本地服务器可以tail f general log file查看调用某个http接口时执行了哪些sql 所以我安装了一个wireshark捕获这些从本地发送的查询sq
  • 无法在 .net core 2 中从 MySQL 构建“日期”类型列

    我已经开始了一个新的 net core 2 项目 我正在尝试将 MySQL 数据库导入实体框架 我使用此命令来搭建数据库 Scaffold DbContext server localhost port 3306 user id user
  • MySQL Python 关于重复键更新值

    我正在研究使用 python 将 JSON 数据上传到 MySQL 我需要在插入语句中包含 ON DUPLICATE KEY UPDATE VALUES 但在 Python 中遇到了问题 如果我运行以下代码 一切正常 import json
  • AWS RDS MySql - 如何在设置“公开可用”后允许访问

    刚刚使用默认设置和用户 密码创建了新的 AWS RDS MySql 实例 我也将其设置为publicly available并在此过程中创建新的 VPC 目前无法从我的笔记本电脑连接到此 RDS mysql h endpoint u myu
  • 如何使用 Mysql Python 连接器检索二进制数据?

    如果我在 MySQL 中创建一个包含二进制数据的简单表 CREATE TABLE foo bar binary 4 INSERT INTO foo bar VALUES UNHEX de12 然后尝试使用 MySQL Connector P
  • MySQL 左连接 WHERE table2.field = "X"

    我有以下表格 pages Field Type Null Key Default Extra page id int 11 NO PRI NULL auto increment type varchar 20 NO NULL
  • mysql-connector-c++ - “get_driver_instance”不是“sql::mysql”的成员

    我是 C 的初学者 我认为学习的唯一方法就是接触一些代码 我正在尝试构建一个连接到 mysql 数据库的程序 我在 Linux 上使用 g 没有想法 我运行 make 这是我的错误 hello cpp 38 error get driver
  • 使用“INSERT ... ON DUPLICATE KEY UPDATE”插入多条记录

    我的表结构 table marks 我的目标 我想用条件插入或更新多条记录 我目前正在通过此查询进行检查 第一步 SELECT FROM marks WHERE student 115 AND param 1 第二步 if records
  • MySQL 和 PHP 参数 1 作为资源

    好吧 当我运行下面提到的代码时 PHP 向我抛出此错误 在日志中 Error mysql num rows 期望参数 1 为资源 第 10 行 place 中给出的字符串 9 11号线 queryFP SELECT FROM db coun
  • 无法在 Zend Framework 中回滚事务

    我在 Zend Framework 中使用以下代码进行事务 但回滚功能不起作用 数据通过 insertSome data 插入数据库 怎么了 db gt beginTransaction try model gt insertSome da
  • MVCC 如何与 MySql 中的 Lock 配合使用?

    我知道Mysql中使用锁或者MVCC可以实现并发控制 比如可重复读 但我不知道MVCC如何避免幻读 在其他地方了解到一般是通过MVCC和Gap Lock来实现的 但是目前我理解的是MVCC不需要锁 即更新和删除都是使用undo log来实现
  • Dapper 或 MySql 未找到包含句号“.”的存储过程。

    我有一个简单的 C 控制台 它使用 Dapper ORM 调用本地 MySql 数据库 以执行名为的存储过程users UserCreate 但是 当运行查询时 我收到一个异常 在数据库 用户 中找不到过程或函数 UserCreate Bu
  • 显示和随机化 php 数组

    我有一个显示结果的数组 如下所示 Array 0 gt 71 1 gt 56 2 gt 64 3 gt 82 4 gt 90 5 gt 80 6 gt 65 7 gt 62 8 gt 14 9 gt 3 我的代码是 while row my
  • 如何在 CodeIgniter 中加载类/库?

    我有一个图书馆叫lib 其中包含一个名为nusoap php 我已经将lib放入文件夹中应用程序 库 当我尝试加载它时 出现以下错误 An Error Was Encountered Unable to load the requested
  • 在mysql连接字符串中添加应用程序名称/程序名称[关闭]

    Closed 这个问题需要细节或清晰度 help closed questions 目前不接受答案 我正在寻找一种解决方案 在连接字符串中添加应用程序名称或程序名称 以便它在 MySQL Workbench 中的 客户端连接 下可见 SQL
  • 无法连接到 MAMP 上的 phpMyAdmin

    我收到此错误消息 MySQL 说道 无法连接 设置无效 phpMyAdmin 尝试连接 MySQL 服务器 但服务器拒绝连接 您应该检查配置中的主机 用户名和密码 并确保它们与 MySQL 服务器管理员提供的信息相对应 用户和通行证是默认的

随机推荐

  • 没有 Spring Cloud 配置服务器的 RefreshScope 运行时配置

    是否可以使用 RefreshScope 通过 POST Rest api refresh 调用来刷新属性 api url 而无需设置 Spring Cloud 配置服务器和 Spring Cloud 配置客户端设置 例如 Consumer
  • Ruby 方法拦截

    我想拦截 ruby 类上的方法调用 并能够在方法实际执行之前和之后执行某些操作 我尝试了以下代码 但出现错误 MethodInterception rb 16 inbefore filter eval 2 inalias method 未定
  • dbml 文件 - 创建数据库

    我正在尝试使用创建数据库BA dbml文件 Linq 到 Sql 我知道我必须创造DataContext并创建数据库 但我不知道该怎么做 我必须创建吗DataContext in the BA cs file 这可能是多余的帖子 对此我深表
  • 如何更改 iphone sdk xcode 中的 uiimage 颜色

    我正在使用不同的图像 我想包括更改颜色选项 但我不能 有身体帮助我吗 如果你想做图像着色 请参见 UIImage Tint m 中kballard MGImageUtilities 如果您想要批量颜色替换 例如 将图像视为剪影并将整个颜色更
  • 如何比较从 url 到 NSutf8stringencoding 的字符串返回 1 或 0 与普通字符串 @"1"

    我需要使用比较 url 中的字符串NSutf8stringencoding以便返回 1 或 0 但即使字符串值为 1 它也始终返回 0 NSString strURL NSString stringWithFormat http local
  • 使用自定义表情符号创建软键盘

    我的任务是创建一个新的 android3rd party keyboard支持来自资产的自定义表情符号 我自己的图标 我想用我自己的表情符号图标实现一个软键盘不使用 Unicode 或我的自定义 Unicode 问题 如果我创建一个自定义表
  • PHPUnit + Selenium:如何设置 Firefox about:config 选项?

    使用 PHPUnit 和 Firefox 远程运行 Selenium 测试时 onChange 事件不会像用户操作浏览器时那样被触发 解决这个问题的方法似乎是设置focusmanager testmode选项true在 Firefox 的偏
  • 回发期间 GridView.DataSource 为空

    我想从我的应用程序中的每个 Gridview 实现打印 下载 csv 那些通过数据源或直接通过 gvSample DataSource Data gvSample DataBind 现在我的第一个方法是在页脚模板中设置一个下载按钮并在那里处
  • 从 .m matlab 文件中声明的矩阵创建 numpy 数组

    一位同事留下了一些我想用 Numpy 分析的数据文件 每个文件都是一个 matlab 文件 例如data m 并具有以下格式 但有更多的列和行 values 24 92 23 66 22 55 24 77 23 56 22 45 24 54
  • 查找并替换数组中的特定哈希及其值

    在数组中查找特定哈希并就地替换其值的最有效方法是什么 以便数组也发生更改 到目前为止 我已经得到了这段代码 但在具有大量数据的实际应用程序中 这成为应用程序中最慢的部分 这可能会泄漏内存 因为当我对每个 websocket 消息执行此操作时
  • 实体框架对同一个表的多次引用

    我在使用 EF 代码优先创建数据库时遇到问题 我有一个实体播放器和一个实体炸船 每个友谊都涉及两个玩家 其中一名玩家是友谊的发送者 另一位是友谊的接收者 这是我的实体 播放器 cs public class Player public in
  • 如何避免 STRING_AGG 函数中的重复

    我的查询如下 select u Id STRING AGG sf Naziv as Ustrojstvena jedinica ISNULL CONVERT varchar 200 STRING AGG TRIM p Naziv 121 a
  • 如何从 groovy/grails 查询 mongodb?

    我是否必须有一个域对象才能查询mongodb 如果我只想显示一些原始数据怎么办 查询的语法是什么mongodb从我的控制器 I tried def var db nameOfMyCollection find 但它说我的控制器类中没有 db
  • 优化 .NET 中 System.Drawing 的 PNG 输出 [关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心以获得指导 我有一个例程 它读取图像
  • BeautifulSoup 返回与查看源代码不同的 html

    我是使用 BeautifulSoup 的新手 所以如果我的问题很愚蠢 请原谅我 然而 自早上 6 点以来 我一直在谷歌上搜索并尝试在每个 stackoverflow 线程中尝试建议 但无济于事 我的问题是我有一个带有基因名称的 csv 文件
  • perl:执行多个系统进程并等待它们完成

    目前 在我的 Perl 脚本中 我进行如下调用 system long program1 long program2 long program3 wait 我希望能够记录每个长时间运行的命令执行的时间 同时仍然异步执行它们 我知道系统调用会
  • Python Altair 生成选择表

    我有一个包含一堆分箱数据的直方图 我想知道如果我从直方图中选择一个条形 是否可以生成一个表格 并且它会显示原始数据框中的数据 您可以使用以下命令创建表格的外观mark text 这是基于文档中此页面的示例 import altair as
  • 在 Spring 5 中与子级共享父级 Spring 上下文

    如何在 Spring 5 中与孩子共享父上下文 使用 spring 4 我们可以通过locatorFactorySelector as context param
  • 使用 jQuery 调用远程 ASMX 的问题

    我一直在尽力正确理解这一点 XML SOAP 和 JSON 响应之间有什么区别 人们如何知道如何调用其响应为上述之一的 Web 服务 如果我偏离了轨道 请纠正我 我问这个问题的原因是因为我试图在我的 NET3 5 web应用程序中从jQue
  • Codeigniter - Active Records 是否容易受到 SQL 注入攻击?

    刚刚读过this堆栈溢出 因此让我想知道是否可以通过 CI 中的活动记录进行 SQL 注入 在我的项目中的大多数地方 对于用户注册和用户配置文件更新 我都完成了如下 SQL 插入 控制器 name this gt input gt post