本文概述
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 Cookie的整个生命周期中保持不变, 也可以在每次提交时重新生成。默认生成的令牌提供了更好的安全性, 但是也存在可用性问题, 因为其他令牌(例如多个选项卡/窗口, 异步操作等)变得无效。可以在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令牌。
评论前必须登录!
注册