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

これには Security Helper を使用できます。

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 に答える