2009-11-29 18 views

cevap

19

Ne dosya uzantısı ne de mime türü bir görüntü dosyası ile uğraştığınız% 100 güvenlik sağlayabilir. Ancak dosyayı yürütmeyeceğiniz sürece (örneğin, include() kullanarak), bu bir sorun değildir ve PHP kodunu veya başka bir şeyi kontrol etmeniz gerekmez. Sahte bir görüntü dosyası kullanarak hayal edilebilecek tek güvenlik ihlali, tarayıcının görüntü oluşturma motorunu istismar eden bir şey olacaktır. Bu, sunucu tarafında etkili bir şekilde koruma sağlamak ve tarayıcı satıcısının sorumluluğundadır.

Yüklemeyi kullanırken, is_uploaded_file() ve move_uploaded_file() numaralı sayfaları kullandığınızdan emin olduğunuz sürece, en azından resim biçimi ön yüzünde iyi durumda olmalısınız. Aşağıda @ bobince adlı gönderiyi okuduğunuzdan ve bağlantıyı takip ettiğinizden emin olun, dosyalar ile uğraşırken diğer güvenlik özellikleri hakkında bir sürü harika bilgi içerir.

Tamamen maksimum güvenlik sağlamak için elbette GD imagecopy'u kullanarak görüntüyü yeni bir görüntü kabına kopyalayabilirsiniz. Bu, dosyada yer alan herhangi bir ID3 ve diğer başlık bilgisini silecek ve muhtemelen herhangi bir exploit denemesini yok edecektir (GD muhtemelen böyle bir dosyayı tıkayacak ve bir hata döndürecektir). Bu, tabii ki GIF, JPEG ve PNG için çalışır ve alfa kanalı ve renk profili sorunları gibi bazı sorunlarla karşılaşabilirsiniz.

+0

+1. –

16
  1. Kullanıcı tarafından gönderilen dosya adlarını hiçbir zaman kullanmayın; «rasgele sayı» .jpeg gibi yenilerini oluştur. ‘Sanitizing’ dosya isimleri, özellikle uygulamanın bir Windows sunucusunda çalışabilmesi gerekiyorsa, düşündüğünüzden daha zordur.

  2. Resimler için, son derece güvenilemeyen dosya adı ve metrik tür gönderimine bakmak yerine, bir görüntünün dosya türünü belirlemek için PHP getimagesize işlevini kullanın. Resim olarak ayrılmamış yüklemelere izin vermeyin.

  3. İndirilmesi planlanan dosyalar için, IE'nin HTML içeriği için koklamasını ve tarayıcıda görüntülenmesini durdurmak için Content-Disposition: attachment başlığını kullanın.

  4. Satır içi görüntülemesi gereken dosyalar için bunları ana sitenize farklı bir ana bilgisayar adından sunmanız gerekir, aksi takdirde içlerindeki HTML içeriği güvenlik içeriğinize çapraz site komut dosyası ekleyebilir. Güvenli bir dosya yükleme özelliğini yapma

sert olduğunu. More discussion. Görüntünün kopyalanması için

+0

3., büyük ipuçları ve harika bağlantı hakkında bilmiyordum. –

İlgili konular