CodeIgniter 安全类

2024 年 8 月 29 日 | 阅读 2 分钟

CodeIgniter 包含安全类方法,这些方法有助于创建安全的应用程序并处理输入数据。这些方法如下。

  • XSS 过滤
  • CSRF (跨站请求伪造)
  • 类参考

XSS 过滤

XSS 代表跨站脚本。 它用于禁用 JavaScript 或其他类型的代码,这些代码试图劫持 cookie 并执行其他类型的恶意行为。 当它遇到任何有害的东西时,它会通过将数据转换为字符实体来使其安全。

XSS 过滤使用 xss_clean() 方法来过滤数据。

有一个可选的第二个参数 is_image,用于测试图像是否存在 XSS 攻击。 当此参数设置为 TRUE 时,它不会返回更改后的字符串,而是如果图像安全则返回 TRUE,如果图像包含恶意信息则返回 FALSE。


CSRF (跨站请求伪造)

要启用 CSRF,请在 application/config/config.php 文件中进行以下设置。

如果您使用的是表单助手,那么一个隐藏的 csrf 字段将自动插入到您的 form_open()/ 字段中。

否则,您可以手动添加它,使用:

get_csrf_token_name()(它返回 csrf 的名称)和

get_csrf_hash()(它返回 csrf 的值)。

生成的令牌可以在 CSRF cookie 的整个生命周期中保持不变,也可以在每次提交时重新生成。 令牌的默认生成提供了更好的安全性,但它也存在可用性问题,因为其他令牌(如多个选项卡/窗口、异步操作等)变得无效。 可以在 application/config/config.php 文件中设置重新生成行为,如下所示。


类参考

参数 - $str (混合) ? 输入字符串或字符串数组

返回 - XSS 清理的数据

返回-类型 - 混合

它从输入数据中删除 XSS 漏洞并返回清理后的字符串。

参数 - $str (字符串) ? 文件名/路径

$relative_path (布尔值) ? 是否保留文件路径中的任何目录

返回 - 经过清理的文件名/路径

返回-类型 - 字符串

它通过清理文件名来防止目录遍历和其他安全威胁。 它主要用于通过用户输入提供的文件。

参数 - $str (字符串) ? 输入字符串

$charset (字符串) ? 输入字符串的字符集

返回 - 实体解码的字符串

返回-类型 - 字符串

它尝试检测不以分号结尾的 HTML 实体,因为某些浏览器允许这样做。

如果 $charset 参数留空,则将使用您在 $config['charset'] 中配置的值。

参数 - $length (整数) ? 输出长度

返回 - 随机字节的二进制系统,失败时返回 FALSE。

返回-类型 - 字符串

它用于生成 CSRF 和 XSS 令牌。

下一个主题防止、启用 CSRF