繁体   English   中英

如何清理输入 codeigniter 3?

[英]how sanitize input codeigniter 3?

首先,我应该提醒您,我已经阅读了这篇文章和其他一些关于我的问题的文章,但大多数文章几乎都已经过时了,大约 3 年前。

现在我正在使用 CodeIgniter 3,我想知道什么是我的数据的最佳清理过滤器,我在插入数据库之前从用户那里检索它们。

这是我的网站注册的,我不知道注册的是哪种用户,我不能相信他们。 我想在将所有输入插入数据库之前对其进行消毒可能会很危险我不知道input类足以对其进行消毒吗?
请告诉我 codeigniter 消毒功能!

我已经阅读了 codeigniter 文档中的安全类,但我想确定一下。

根据Docsinput类执行以下操作:

  • 过滤 GET/POST/COOKIE 数组键,只允许使用字母数字(和一些其他)字符。
  • 提供 XSS(跨站点脚本黑客)过滤。 这可以全局启用,也可以根据要求启用。
  • 和其他一些处理,但为了安全起见,这已经足够了。

所以,这就解决了SQL注入和XSS的问题。 对于大多数用途,这已经足够了。

要启用XSS保护,请使用:

$val = $this->input->post('some_data', TRUE); // last param enables XSS protection.

此外,您可能想研究CSRF保护。 但是,如果您正在执行 ajax 调用,启用它有点棘手。

在接受任何数据到您的应用程序之前,无论是来自表单提交的 POST 数据还是 URI 数据,您都必须遵循以下步骤:

  1. 过滤数据。
  2. 验证数据以确保其符合正确的类型、长度、大小等(有时这一步可以代替第一步)
  3. 在将数据提交到数据库之前转义数据。 CodeIgniter 提供了以下函数来协助这个过程:

XSS 过滤

此过滤器查找常用技术以将恶意 JavaScript 嵌入到您的数据中

要通过 XSS 过滤器过滤数据,请使用xss_clean()方法: 阅读更多

验证数据

CodeIgniter 有一个表单验证库,可帮助您验证、过滤和准备数据

$this->form_validation->set_rules('username', 'Username','trim|required|min_length[5]|max_length[12]');

修剪字段,在必要时检查长度并确保两个密码字段匹配。 阅读更多

数据库插入前转义所有数据

永远不要在不转义的情况下将信息插入到您的数据库中。

有关更多信息,请参阅查询构建器类https://www.codeigniter.com/userguide3/database/query_builder.html

更多信息

Codeigniter 不会让您的应用程序保密看到这个https://security.stackexchange.com/questions/97845/how-secure-is-codeigniter-3-x

一切都取决于开发人员。frameworks 只会提供一个结构来构建您的应用程序。如果您编写核心 php,您将更安全。

更多链接:

你如何使用 bcrypt 在 PHP 中散列密码?

PDO 准备好的语句是否足以防止 SQL 注入?

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM