我一直在研究保护上传到服务器的文件。
我在文档中遇到了$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
此配置加密文件名。