2016-04-14 7 views
0

Dosya yükle türlerini kısıtlayın. Ancak, dosya adını bad_image.exe'dan bad_image.exe.jpg'a değiştirdiğimde, mimetype hala image/jpeg'dur. Bu hala kötü niyetli bir saldırıya neden olabilir.Ben 3.4</p> <p>Temelde, onlar <code>mimetype</code> kullanarak karşıya yükleme sırasında bir dosyanın MIMETYPE denetlemek istediğiniz Python çalışan Django 1.8 dosya yükleme kısıtlamak için bir yol uygulamak am Django

Bunu gerçekte uygulamak için bir yol var mı? Ben de magic denedim ama hala çalışmıyor.

cevap

0

Haklısınız, .exe dosyasını .exe.jpg ve content_type çıkış (image/jpeg) için yeniden adlandırın. Çıktı benim testinde oldu

Ama düzgün bir başlıklarını değil uzantısı kontrol etmek kadar dosyayı kontrol eğer python-magic kullanarak:

PE32 executable (GUI) Intel 80386, for MS Windows

Hatta bu yüzden başlıkları değiştirilebilir düşünüyorum ... umarım yardımcı olur.


DÜZENLEME: benim test Kullanımdacleaning a specific attribute

class UploadFileForm(forms.ModelForm): 
    class Meta: 
     model = FileTestUpload 
     fields = ('title','file') 

    def clean_file(self): 

     f = self.cleaned_data.get("file", False) 
     ftype = magic.from_buffer(f.read()) # InMemoryUploadedFile 

     print ftype 

     return f 

Çok basit ama sadece test etmekti.

+0

Merhaba, dosyaya bellekte depolandığından bu yana, yüklenen dosyaya nasıl erişebilirim? – bryansis2010

+0

Cevabı güncelledim. Bu durumda dosyayı yükleyin, ancak türleri ve uzantıları kontrol edebilir ve form hatalarını gönderebilirsiniz. –

İlgili konular