PHP, HTML, Javascript dilleri çalışan belirli bir dizin önlemek için nasıl?

4 Cevap php

En i sadece düz metin olarak gösteren hatta HTML PHP yürütme veya gelen yükleme dizini engellemek istiyorsanız, bir görüntü aktarıcı komut dosyası var diyelim, ben pek çok web sitesi bu hile gördüm ama bunu nasıl bilmiyorum.

Ben bu dizinin evil.php, upload ve bunu erişmeye çalışırsanız Kısaca, ben sadece bir düz metin kaynağı göreceksiniz, hiçbir html veya php yürütülür. (Ama hala görüntüler normal tabii görünmesini istiyorsanız)

Ben header("content-type:text/plain"); tarafından böyle yapabilirsiniz biliyorum ama ne istediğinizi, yükleme dizinden outputed her şey için sunucu tarafından content-type:text/plain otomatik olarak ayarlamak çünkü bu, yararlı olmayacaktır oluyor görüntüler dışında.

Not: Ben php 5.3.2/Cent OS ve son cPanel koşuyorum.

Teşekkürler

4 Cevap

. Çok azından, yükleme dizini için htaccess dosyasında aşağıdaki koymak isteyeceksiniz:

Options -Indexes
Options -ExecCGI
AddHandler cgi-script .php .php3 .php4 .phtml .pl .py .jsp .asp .htm .shtml .sh .cgi

Bir. Htaccess dosyası ile sorun yükleme yükleme bloke değilse, senin. Htaccess üzerine edilebilir. (Apache kullanıyorsanız) alternatif bir çözüm, bir Apache yönergesi kullanarak Burada gösterilen, Disable PHP in directory (including all sub-directories) with .htaccess

Yükleme dizininde bir .htaccess koyun.

AddType 'text/plain' .php .html

veya

FveyaceType 'text/plain'
#...

"disable script execution for directory" seçenekleri bir dizi açmak için bir Google araması yapın. Bu benim en sevdiğim biridir:

AddType text/plain .html .htm .shtml .php .php3 .phtml .phtm .pl .py .cgi .js

Sadece olumsuz açıkça çalıştırmak için uzantıları isim olması, ancak tüm dosya uzantıları düz metin olarak kabul edilir ve sonra el Mime Tipi eklemek böylece vahşi kart çeşit kullanmak (sadece bir önsezi) mümkün olabilir standart resim uzantıları için.

Bir image uploader, siz görüntüleri istemiyorum sözettiğimize plain/text. Nasıl zararlı dosyaları görüntüleri ayırmak istiyorsunuz? Bu görevi sırasında, sadece belirli bir dosyayı kaydetme engelleyebilirsiniz.