Kıvrılma gibi bir comandline uygulama ile denir değilse nasıl bir php komut dosyası erişimi engellerim

3 Cevap php

Kıvrılma gibi bir comandline uygulama ile denir değilse nasıl bir php komut dosyası erişimi engellemek mi? Ben bir web uygulaması üzerinde çalışıyorum ve o hizmetlerini çalıştırmak için bir cron komut dosyası kullanır. Ben bu yüzden bir url bir dosya yolu kullanmak zorunda CodeIgniter kullanıyorum.

3 Cevap

Değil doğrudan bir yanıt olsa da, ben bu CodeIgniter Kütüphane yatan sorunu çözmek olacağını düşünüyorum:

CodeIgniter CLI Library

Bunu ben getirildi CI projede kullanılan kütüphanesi inanıyorum. Bu iyi çalışıyor. Komut satırından sadece:

php cli.php controller action urlseg1 urlseg2 ...

HTTP kimlik doğrulaması kullanın.

Sen User-Agent HTTP başlığı ile kıvırmak tanıyabilir, ama güvenli değil - herkes senin komut erişmek için böyle başlığını kullanabilirsiniz (veya kıvırmak kullanın).

(Edit) Ayrıca istek IP adresini kullanabilirsiniz. Cron Curl istekleri muhtemelen 127.0.0.1 olacak; (web sitesi aynı sunucu üzerinde çalışan ters proxy arkasında çalışan sürece) Herkes bu adresten isteklerini yapmak için mümkün olmamalıdır. Bu (paylaşılan webhosting örneğin)% 100 güvenli değil, ama yeterince güvenli olabilir.

BTW. neden CRON doğrudan PHP betiği çalıştırmak değil? Sonra tüm web erişilebilir olmak zorunda değildir.

Bu muhtemelen en iyi çözüm değil, ama saniyeler içinde uygulayabilirsiniz.

CURL POST kullanın ve POST değişkenlerden biri olarak bir şifre geçmek. Şifre komut sarıcı ile doğru ve böylece yalnızca dosyayı yürütün olmadığını kontrol edin.