1

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

我在文档中遇到过$this->security->sanitize_filename(),但我不知道如何在文件上传期间将其用于文件名。我不希望有人将文件命名为恶意文件Something<?php exit;?>.jpg或带有可能与 url 路径混淆的斜线的东西。

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

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

4

3 回答 3

3

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

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

$config['file_name'] = $filename;
于 2012-08-10T16:10:55.890 回答
1

您可以为此使用安全助手。

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

于 2013-02-15T14:55:24.650 回答
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

此配置加密文件名。

于 2012-08-10T16:27:49.483 回答