PHP 필터 모듈을 완전히 비활성화하기 위해 PHP 입력 필터를 사용하는 모든 입력을 찾는 방법은 무엇입니까?


10

큰 웹 사이트에서 PHP 필터 모듈을 비활성화하고 싶지만 PHP 필터를 사용할 수있는 모든 노드, 블록 및 기타 필드를 거치는 데는 시간이 걸립니다.

내 웹 사이트에서 PHP 필터가 사용되는 위치를 찾기 위해 SQL 쿼리를 실행하여 간단한 방법이나 방법이 있습니까?

답변:


9

휠을 다시 발명하지 않고 다음과 같은 점검이있는 보안 검토 모듈을 설치 하십시오.

컨텐츠의 PHP 또는 Javascript (Drupal 7의 노드 및 주석 및 필드)

블록의 경우 block_custom 테이블에서 형식 열을 확인할 수 있습니다.

어려운 점은 Views입니다-뷰에서 악성 PHP를 프로그래밍 방식으로 찾는 신뢰할 수있는 방법을 아직 찾지 못했습니다.


1
보안 검토 담당자 뷰에 대한 신뢰할 수있는 검사 추가 할 수없는 경우 다음으로 불가능할 수 있습니다.
Mołot

@ Mołot : PHP를 사용하도록 설정 한보기를 검색하는 방법을 찾았습니다. 아래 답변을 참조하십시오 .. 단점이나 엣지 사례가있는 것을 아는 것이 좋습니다 ...
Anil Sagar

1
내가 얻은 건 "신뢰할 수없는 사용자는 PHP 입력 형식을 사용할 수있는 권한이 없습니다."입니다. -최신 버전. 프론트 페이지에 PHP 입력 형식의 블록이 있었을 때 녹색이되었습니다 . 귀하의 답변은 현재로서는 사실이 아닌 것 같습니다.
Mołot December

그래서 내가 말할 수있는 것에서 ... 보안 검토 모듈은 PHP 필터가 사용되고 있음을 알려줍니다 ... 정확히 어떤 요소가 그것을 사용하고 있는지는 진정한 보안 검토에서 도움이 될 것입니다. 그러나 추가 조사가 필요하다는 경고입니다.
General Redneck


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에서도 작동하기를 바랍니다 ..
Anil Sagar

1
이 모든 뷰에 대한 작업을하지 않습니다 (예를 들어 코드에 정의 된), 나는 :) 생각하지만 그 정규식 쉽게 더 나은 아무것도보다 ... 잘못된 반응을 생산할 수
클라이브

phpmyadmin을 사용하면 모든 테이블의 모든 열을 쉽게 검색하고 php를 검색하고 수동으로 결과를 볼 수 있습니다.
루비

0

위의 Anil Sagar의 코드는 뷰가 데이터베이스에 저장된 경우에만 작동합니다. 뷰가 코드로만 작동하면 작동하지 않습니다. 그래서 모든 뷰를 db에 저장하기 위해 실행하는 작은 스 니펫을 작성했습니다. 그런 다음 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
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.