我一直在考虑保护上传到我服务器的文件。
我在文档中遇到了$this->security->sanitize_filename()
,但我无法弄清楚如何在文件上传期间将其用于文件名。我不希望有人将某个文件命名为Something<?php exit;?>.jpg
之类的恶意文件或者带有可能会破坏网址路径的斜杠的文件。
Codeigniter中的文件上传类是否自动使用sanitize_filename?如果没有,我该如何使用它?
我是否需要首先使用$ _FILES执行某些操作,然后使用sanitize_filename,然后将其传递给上传配置中的file_name?如何从$ _FILES?
访问文件名答案 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
此配置加密文件名。