Register_globals ile yapma kod iş kapalı

5 Cevap php

5 Cevap

Eğer E_ALL hata raporlama ayarlarsanız, bu dosya ve (bir dosyaya oturum varsayarak) hat numarası ile tam tanımlanmamış değişkenler hakkında hata günlüğünde uyarır. Ancak, tanımlanmamış bir değişken karşısında söz konusu olduğunda sadece uyarmak, bu yüzden ben her kod yolunu test etmek olacaktır düşünüyorum. Komut satırından php Koşu da yardımcı görünmüyor.

Xdebug adında bir hata ayıklama aracı, denemedim, ama belki bu yararlı olabilir var?

Ben yazdığım bir script yerleşik Tokenizer fonksiyonları kullanarak. Onun oldukça kaba ama ben üzerinde çalışıyordu kod tabanı için çalıştı. Ben de kullanabilirsiniz inanıyorum CodeSniffer.

Bazı güvenlik elle 'sahte' kayıt globallerinin etkisi ancak ekleyebilirsiniz. (Ben kısmen Xoops denilen osCommerce fork bu yakaladı)

//  Detect bad global variables
$bad_global_list = array('GLOBALS', '_SESSION', 'HTTP_SESSION_VARS', '_GET', 'HTTP_GET_VARS', '_POST', 'HTTP_POST_VARS', '_COOKIE', 'HTTP_COOKIE_VARS', '_REQUEST', '_SERVER', 'HTTP_SERVER_VARS', '_ENV', 'HTTP_ENV_VARS', '_FILES', 'HTTP_POST_FILES');
foreach ($bad_global_list as $bad_global ) {
    if ( isset( $_REQUEST[$bad_global] ) ) {
        die('Bad Global');
    }
}

//  Make global variables
foreach ($_REQUEST as $name -> $value) {
    $$name = $value; // Creates a varable nammed $name equal to $value.
}

En azından kötü globallerinin listesine (yol ve taban url gibi) genel yapılandırma değişkenlerini ekleyerek, kodunuzun daha güvenli hale getirmek için oynamak isterdim ama.

Ayrıca kolayca sonunda tüm tekrarlarını değiştirmek yardımcı olmak için kullanılan tüm get / post değişkenlerin bir listesini derlemek için kullanabilirsiniz, $ return url, with $ İSTEK ['return_url] demek;

Belirli bir komutu ile bu script için php.ini değerlerini ayarlamak için bir yol var biliyorum, ben böylece aramaya gittim ve buldum çok - Goto last post on page

Ayrıca yararlı olabilir, aşağıdaki yazı bulundu - Goto last post on the page

Kimse bir cevap bulmuş ise bu daha fazla katacak ama şimdi bir treni yakalamak gerekir.

Bu sorunları çözecek hem @ Teifion rağmen, daha sonra aslında kodu sabitleme hala az güvenlidir.