2011-05-04 28 views
5

Projemde kullanıcıların her türden dosya yükleme izni var. Php (* .php, * .html, vb.) Tarafından ayrıştırılabilen yüklenen dosyaların yürütülmesine karşı güvenliği sağlamanız gerekir.Yüklenen php dosyalarının yürütülmesini engelle?

Apache'ye web/yüklemelerde php ile herhangi bir dosyayı ayrıştırmamak için bir yol var mı sadece bunları düz metin olarak görüntülüyor musunuz? Diğer seçenekler neler?

+1

Sadece düz metin dosyası olarak görüntülemelerini istiyorsanız, neden sadece yüklendiğinde filename.txt olarak adlandırılsın? Veya orijinal uzantıyı korumak istiyorsanız, dosyaadı.php.txt. İdam edilmeyecek, bir metin dosyası olarak ele alınacaktır. –

+0

Bir dosya indirmek ve makinede çalıştırmak istiyorsa, bu bir istemci için biraz fazla yük ekler. Yalnızca uzantılarınız gizlendiyse, Windows'da yapmak için ne gerekiyorsa onu görüntüleme. =) – Dziamid

cevap

11

aynı klasör altında hepsini tutun ve dizinin .htaccess dosyasında bu satırı ayarlayın:

php_flag engine off 

ayrıca .gif dosyalarında PHP kod gömme gibi diğer patlatır ilgilenir. http://httpd.apache.org/docs/current/mod/core.html#sethandler Bu, bir dizindeki tüm dosyaları zorlamak sağlar

belli işleyicisi tarafından işlenecek:

+0

Bu çalışır. Ancak, dosya * .php ise, tarayıcı bir dosya indirmeyi kabul eder. Bu durumda "Content-Type \t text/plain" başlığını nasıl yazabilirim? – Dziamid

+1

@Dziamid: Bunu kendim denemedim, ama inanıyorum 'AddType metin/düz .php' hile yapmalı. – Kaivosukeltaja

0

neden dosya uzantılarını .phps'a yükledikten sonra yeniden adlandırmıyor?

netleştirmek için:

file.php =>file.phps

hızlı google örnek:

Phps netleştirmek için

bir PHP dosyasının kaynak kodu görünümüdür

+0

Bu oldukça basit, ancak orijinal isimleri tutmak istiyorum. – Dziamid

+0

no hayır yanlış anladığınızı yanlış anlıyorsunuz, dosya adını değil, dosya.php 'dosya.phps' dosya adında büyük bir değişiklik olmaz. – Jakub

+1

hayır, anlıyorum. Kullanıcıların, makinelerinde çalıştırabilmek için uzantıyı yeniden adlandırmaya gerek kalmadan bir dosya indirmelerini istiyorum. – Dziamid

2

Apache SetHandler yönergesini istiyorum. Bu nedenle, istediğiniz her şeyi yapmalısınız:

.

+0

Bu iyi çalışıyor. * .php dosyaları "Content-Type \t text/html" başlığı ile kaldırılmıştır. Aynısını .htaccess ile yapabilir miyim? – Dziamid

+0

Aynı şeyi yapabileceğinizi varsayalım: Dokümanlar, .htaccess dosyalarında kullanılabileceğini söylüyor. – Femi

+0

Gerçekten de dokümanlar bunun olabileceğini söylüyor ancak .htaccess bağlamında hiçbir etkisi yoktur. AllowOverride'ın tümü sanal konakta ayarlanmış. – Dziamid

İlgili konular