CodeIgniter安全等级

本文概述

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

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

XSS过滤

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

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

$data = $this->security->xss_clean($data);

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

if ($this->security->xss_clean($file, TRUE) === FALSE)
	{
		//file failed in xss test
	}

CSRF(跨站伪造)

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

$config['csrf_protection'] = TRUE;

如果你使用的是表单帮助器, 则一个隐藏的csrf字段将自动插入到form_open()/字段中。

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

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

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

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

$config['csrf_regenerate?] = TRUE;

类参考

Class CI_Security
xss_clean ($str [, $is_image = FALSE])

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

返回-XSS干净数据

返回类型-混合

从输入数据中删除XSS漏洞并返回干净的字符串。

Sanitize_filename ($str [, $relative_path = FALSE])

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

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

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

返回类型-字符串

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

Entity_decode (($str [, $charset = NULL])

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

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

返回-实体解码的字符串

返回类型-字符串

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

$ charset参数保留为空, 然后将使用$ config [‘charset’]中的配置值。

Get_random_bytes ($length)

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

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

返回类型-字符串

它用于生成CSRF和XSS令牌。

微信公众号
手机浏览(小程序)
0
分享到:
没有账号? 忘记密码?