PHP üzerindeki kısıtlamalar dahil ()

5 Cevap php

Hey guys, ben ayrı bir dosya içine XHTML koyarak ve ardından PHP komut dosyası içinde PHP'nin include() fonksiyonunu kullanarak PHP bazı XHTML ayıran duyuyorum.

Bu mükemmel çalışıyor, ancak, kullanıcılar hala adresini biliyorsanız .html dosyasını doğrudan erişebilir. Onlar gerçekten onunla çok yapamam, ama ben daha çok göstermek olmaz.

Ben geçmiş kullanımı bazı betikleri yönlendirme kontrol çeşit gördüm, bu ben doğrudan erişerek izlendi engellemek için bazı temel (Notice I said 'basic') kısıtlamalar eklemek için ne yapardınız?

Teşekkürler!

Clarification: Ben PHP içinde bunu yapmak istediğinizi belirtmeyi unutmuşum, böylece herhangi bir web sunucusu yapılandırma (Moving files out of document-root, configuring web-server to disallow access, etc.). Ben burada en mantıklı seçim olduğunu benim yazı belirtildiği gibi, unutmuştum diğer komut ne gördüm gerçekten aslında define() sürekli kontrol, kullanımı olduğunu düşünüyorum. Bu muhtemelen en iyi çözüm değil biliyoruz, ama erişim olabilir html dosyası özel bir değeri olduğu göz önüne alındığında, define() sabit yeterli olacaktır. Teşekkürler Ben yanıtları takdir!

5 Cevap

Eğer şu anda (index.php gibi) tüm dosyaları koyarsanız /something/public_html/ Eğer /something/ için dosyaları taşımak isteyecektir. Bu şekilde kullanıcılar, dosyaları erişemiyor.

/public_html/ Belgeniz kök denir. Bu klasör example.com ile eşleştirilir ve ve temelde web sitesi orada başlar. Eğer web sitesi başladığı yukarıdaki dosyaları taşırsanız, hiç kimse bir tarayıcı aracılığıyla bu dosyalara erişebilirsiniz.

Ignacio dediği gibi güvenli mod açıksa, bu include ile çalışmaz.

Diğer yöntemler dosyası thats der üstündeki bir şey yerleştirmek için olan

if(!defined("RUNNING_SCRIPT"))
    die("No Direct Access Allowed");

ve sonra PHP dosyaları koymak

 define("RUNNING_SCRIPT", true);

RUNNING_SCRIPT tanımlı değilse, onlar doğrudan erişim anlamına gelir, ve yüklenmesini sayfayı durdurur. PHP .html dosyalar üzerinde çalışıyorsa bu sadece olsa çalışır.

Ayrıca bu klasörlere erişimi izin verilmeyen bir .htaccess dosyasını kullanabilirsiniz.

Sadece belge kök dışına taşıyın. PHP olsa Güvenli Mod ise bu işe yaramaz.

Bu dosyaya erişimine izin vermemek için web sunucusu yapılandırmasını değiştirmek?

Hayır, böyle bir şey:

index.php:

<?php

define('ALLOW_INCLUDE', true);

include('other.php');

?>

other.php:

<?php

if (defined('ALLOW_INCLUDE') === false) die('no direct access!');

// your code

?>

Bu ilk satırı olarak yerleştirmek için iyi bir fikirdir.

Ayrıca. Htaccess kullanabilir veya fallbacks gibi de bir index.html sayfası bırakabilirsiniz.

<?php defined('SOME_CONSTANT_GLOBAL_TO_YOUR_APP') or die('Access denied.'); ?>