在Codeigniter中的文件上载期间使用sanitize_filename()

时间:2012-08-10 15:58:50

标签: php codeigniter

我一直在考虑保护上传到我服务器的文件。

我在文档中遇到了$this->security->sanitize_filename(),但我无法弄清楚如何在文件上传期间将其用于文件名。我不希望有人将某个文件命名为Something<?php exit;?>.jpg之类的恶意文件或者带有可能会破坏网址路径的斜杠的文件。

Codeigniter中的文件上传类是否自动使用sanitize_filename?如果没有,我该如何使用它?

我是否需要首先使用$ _FILES执行某些操作,然后使用sanitize_filename,然后将其传递给上传配置中的file_name?如何从$ _FILES?

访问文件名

3 个答案:

答案 0 :(得分:2)

我刚刚将其添加到我的文件上传配置中。

$filename = $this->security->sanitize_filename($this->input->post('file'));

$config['file_name'] = $filename;

答案 1 :(得分:1)

您可以使用安全助手。

encode_php_tags()使php标签成为html实体。

答案 2 :(得分:0)

只需将此配置添加到您的上传配置

即可
.
.
$config['encrypt_name'] = TRUE
.
.
 $this->load->library('upload', $config); // Or $this->upload->initialize($config); if you already loaded the upload library

检查codeigniter用户指南:http://codeigniter.com/user_guide/libraries/file_uploading.html

此配置加密文件名。