Php filtre modülünü tamamen devre dışı bırakmak için php giriş filtresini kullanan tüm girişleri nasıl bulabilirim?


10

Ben büyük bir web sitesinde PHP Filtre modülünü devre dışı bırakmak istiyorum, ancak php filtrenin mümkün olan tüm eons alabilir nerede tüm düğümler, bloklar ve diğer alanlarda geçiyor.

Web sitemde php filtresinin nerede kullanıldığını bulmak için SQL sorguları çalıştırarak basit bir yol veya yöntem olabilir mi?

Yanıtlar:


9

Tekerleği yeniden icat etmek yerine , aşağıdaki kontrole sahip Güvenlik İnceleme modülünü takın :

İçerikte PHP veya Javascript (Drupal 7'deki düğümler ve yorumlar ve alanlar)

Bloklar için block_custom tablosundaki biçim sütununu kontrol edebilirsiniz.

Zor olan Views - henüz programda sahte PHP Görünümler bulmak için güvenilir bir yol bulmak için.


1
Ben Güvenlik İnceleme adamlar eğer tahmin etmek mümkün değildi Görünümler için güvenilir bir işareti eklenir, imkansız basitçe sonraki şey olabilir.
Mołot

@ Mołot: Sadece php etkin görünümleri almak için bir yol buldum lütfen aşağıdaki cevabımı bakın .. Herhangi bir olumsuz ya da kenar vakaları olduğunu bilmek harika olacak ...
Anil Sagar

1
Tek aldığım "Tamam Güvenilmeyen kullanıcıların PHP girdi biçimini kullanma erişimi yok." - son sürümü ile. Ön sayfada php giriş formatı ile bir blok vardı beni yeşil var . Cevabınız şu anda basit gibi görünüyor.
Mołot

Yani, ne söyleyebilirim ... Güvenlik İnceleme Modülü php filtresinin kullanıldığını söyler ... tam olarak hangi öğeleri kullanıyor, hangi gerçek bir güvenlik incelemesi yararlı olacaktır. Ancak bu, daha fazla araştırmanın gerekli olduğuna dair iyi bir uyarıdır.
General Redneck


7

MySQL'de aşağıdaki komutu çalıştırarak php etkin olan tüm görünümleri bulabilirsiniz ...

SELECT vv.name , vd.display_options
FROM views_display AS vd
LEFT JOIN views_view AS vv ON vv.vid = vd.vid
WHERE vd.display_options REGEXP '.s:[3]+:"php".*'

views_display tablo bu bilgileri serileştirilmiş biçimde saklar .... Ben beklendiği gibi sorgu çalışır yukarıda test ettik .. Umarım PHP bilmece görüşlerini çözmeye yardımcı olur :-)


1
İyi görünüyor. Biraz test etmek gerekir. Bu arada düzenleme özgürlüğünü aldım ve sorguyu yazma şeklinizi temizledim (mantığına, isimlerine vb. Dokunmadan).
Mołot

Teşekkürler :-) Ben sadece doğruladı ve ben php etkin olan görünümleri görmek mümkün .. Umarım OP için de çalışır ..
Anil Sagar

1
Bu tüm görünümler (örneğin kodda tanımlanan olanlar) için işe yaramaz ve bu regex kolayca yanlış pozitif üretebilir ... sanırım ama hiçbir şey daha iyi :)
Clive

Phpmyadmin'i kullanarak tüm tabloların tüm sütunlarında kolayca arama yapabilir, php için arama yapabilir ve sonuçları manuel olarak inceleyebilirsiniz.
rooby

0

Yukarıdaki Anil Sagar kodu yalnızca görünüm veritabanına kaydedilmişse çalışır. Görünüm yalnızca koddaysa çalışmaz. Böylece, tüm görünümleri db'ye kaydetmek için çalıştırdığım küçük bir snippet yazdım. Sonra php yüzey için MySQL snippet'i kullanabilirsiniz.

  $views = views_get_all_views();
  foreach ($views as $view) {
    if (empty($view->disabled)) {
      $view->save();
      drupal_set_message('view saved: ' . check_plain($view->name));
    }
  }

0

Eski soru, ancak ilk Google aramamda oldu.

Tüm PHP girdilerini bulması gereken bir Katkı Modülü vardır:

PHP Bulucu

'PHP Finder' modülü, düğümde, blokta veya görünümlerde PHP filtre formatının nerede kullanıldığını bulmak için kullanılır.


Kurallarda kullanılan PHP hakkında ne dersiniz?
Pierre.Vriens
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.