在代码点火器中的文件上传期间使用 sanitize_filename()


Using sanitize_filename() during File Upload in Codeigniter

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

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

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

我是否需要先使用 $_FILES 做某事,然后使用 sanitize_filename,然后将其传递给上传配置中的file_name?如何从 $_FILES 访问文件名?

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

$filename = $this->security->sanitize_filename($this->input->post('file'));
$config['file_name'] = $filename;

为此可以使用安全助手。

encode_php_tags() 为 HTML 实体制作 php 标签。

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

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

查看代码点火器用户指南:http://codeigniter.com/user_guide/libraries/file_uploading.html

此配置加密文件名。