phpフィルターモジュールを完全に無効にするためにphp入力フィルターを使用するすべての入力を見つける方法は?


10

大規模なWebサイトでPHPフィルターモジュールを無効にしたいのですが、phpフィルターを使用できるようにするすべてのノード、ブロック、その他のフィールドを通過すると、かなり時間がかかります。

SQLクエリを実行して、phpフィルターがWebサイト全体でどこで使用されているかを確認する簡単な方法または方法はありますか?

回答:


9

ホイールを再発明するのではなく、次のチェックを行うSecurity Reviewモジュールをインストールするだけです。

コンテンツ内のPHPまたはJavascript(Drupal 7のノードとコメントおよびフィールド)

ブロックの場合は、block_customテーブルのフォーマット列を確認できます。

難しいのはビューです-ビューで不正なPHPをプログラムで見つける信頼できる方法はまだ見つけていません。


1
Security Reviewの担当者ビューの信頼できるチェック追加できなかったとしたら、それは単に次のことは不可能かもしれません。
Mołot

@Mołot:phpが有効になっているビューを取得する方法を見つけました。以下の私の答えを参照してください。.欠点やエッジケースがあることを知るのは素晴らしいことです...
Anil Sagar 14

1
私が得たのは、「OK信頼されていないユーザーはPHP入力形式を使用するためのアクセス権を持っていません。」だけです。-最新バージョンで。フロントページにphp入力形式のブロックがあると、環境が整いました。現在のところ、あなたの答えは単に正しくないようです。
Mołot

だから、私が言えることは...セキュリティレビューモジュールは、phpフィルターが使用されていることを教えてくれます...正確にセキュリティレビューで役立つ要素ではなく、phpフィルターが使用されています。ただし、これはさらに調査が必要であることを示す適切な警告です。
レッドネック将軍2014


7

MySQLで以下のコマンドを実行すると、phpが有効になっているすべてのビューを見つけることができます...

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テーブルは、この情報をシリアル化された形式で格納します。...上記のクエリは期待どおりに機能することをテストしました。ビューのPHPの謎の解決に役立つことを願っています:-)


1
いいね。少しテストする必要があります。その間、私は自由に編集を行い、クエリの記述方法を(もちろん、ロジック、名前などには触れずに)クリーンアップしました。
Mołot

ありがとう:-)私は確認され、私はPHPが有効になっているその景色を見ることができる...それはあまりにもOPのために働くレッツ・希望...
アニル・サーガル

1
これは、すべてのビュー(コードで定義されたものなど)のための作業にはない、と私は思いますけれども、その正規表現を簡単に、より良い何よりも...偽陽性を作り出すことができる:)
クライヴ

phpmyadminを使用すると、すべてのテーブルのすべての列を非常に簡単に検索し、phpを検索して、手動で結果を確認できます。
rooby

0

上記のAnil Sagarのコードは、ビューがデータベースに保存されている場合にのみ機能します。ビューがコードのみである場合、機能しません。そこで、すべてのビューをデータベースに保存するために実行する小さなスニペットを書きました。次に、MySQLスニペットを使用してphpを表示できます。

  $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

古い質問ですが、私のGoogle検索では最初でした。

すべてのPHPエントリを見つけることになっているContribモジュールがあります。

PHPファインダー

「PHP Finder」モジュールは、ノード、ブロック、ビューのいずれの場合でも、PHPフィルター形式が使用されている場所を見つけるために使用されます。


ルールで使用されるPHPはどうですか?
Pierre.Vriens 2017
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.