Suhosin ile PHP SimpleXML, CodeIgniter ve Apache

4 Cevap php

I have an application I am writing in PHP5, using the CodeIgniter framework. I have it running on both Windows (using Xampp) and Ubuntu (using standard Apache, PHP, MySQL stack).

Ben, XML alır (SimpleXML kullanarak) ayrıştırır ve bir veritabanına sonuçları nakleder bir form var.

Windows - amaçlandığı gibi hiçbir sorun çalışır.

Linux - büyük bir sorun. Bu hatalar dışarı.

Ben çift XML kontrol ettik, gayet iyi.

Ben XML büyük miktarda çıkarılır, ve o ok gibi görünüyor.

Ben formdan nakledilen XML dize boyutu ile ilgili olduğunu düşünüyorum, ama emin değilim. Yine, Windows üzerinde Tamam - Linux üzerinde, bu hatalar dışarı.

Şeklinde yayınlanan verilerin boyutu ~ 160k (evet, o metnin bir sürü, ama bu otomatik - VE o olacak sonunda yaklaşık 200k olmalı).

Hata altındadır.

Herhangi bir yardım çok takdir.

Ölümcül hata: iletisi ile yakalanmamış istisna 'İstisna' / var / www / ci / system / application / controllers / system.php içinde String 'XML olarak ayrıştırıldı olamazdı': 49 Stack trace: # 0 / var / www / ci / sistem / uygulama / kontrolörleri / system.php (49): SimpleXMLElement-> __construct ('') 1. [iç işlev]: Sistem-> add_system () # 2 / var / www / ci / sistem / CodeIgniter / CodeIgniter.php (233): call_user_func_array (Array, Array) # 3 / var / www / ci / index.php (115): require_once ('/ var / www / ci / sys ...') # 4 {main} atılmış / hat 49 üzerinde var / www / ci / system / application / controllers / system.php

Hat 49 Bu gibi görünüyor:

$ Xml = new SimpleXMLElement ($ this-> input-> yazılan ('form_systemXML'));

EDIT - SABİT

Sorunu bulundu. Suhosin Ubuntu yüklü. dosya / etc/php5/apache2/conf.d/suhosin.ini olarak, I = 65000 satır suhosin.post.max_value_length etkin ve 195.000. Yeniden BaĢladı Apache için değeri değişti, ve tüm iyi. Işaretçiler çocuklar için teşekkür ederiz.

4 Cevap

It seems like you're running the Suhosin PHP extension. Please have a look at the configuration documentation at: http://www.hardened-php.net/suhosin/configuration.html.

İlgili seçeneği (I Suhosin uzantısı asla kullanmadım) gibi görünüyor: suhosin.post.max_value_length ve / veya suhosin.request.max_value_length

Linux kutusu üzerinde PHP yapılandırmasını kontrol edin ve Windows ayarlarını karşılaştırın lütfen. Özellikle aşağıdaki ayarları:

  • memory_limit
  • post_max_size
  • magic_quotes_gpc
  • max_input_time

Belki komut dosyasına gönderilen bir veri dökümü yapabilirsiniz

print_r($_POST);

gerçekten sunucuya geliyor verileri görmek için.

Zaten bu yaklaşımı denedim olabilir ama satır sonlarını kontrol ettin mi? \ (UNIX) \ n aksine r \ n (DOS)? Bu SimpleXML kullanımları farklı platformlarda onlar tarafından karışık olabilir düzenli ifadeler o olabilir ...

Güncelleme - syslog'a bu bulundu

4 Kasım 21:53:32 ubu804 Suhosin [7944]: ALERT - yapılandırılmış istek değişken değeri uzunluğu sınırı aşıldı - değişken düştü 'form_systemXML' (saldırgan '127 .0.0.1 'dosyasını' / var / www / ci / index.php ')

Şimdi, apache config arıyorum.