Drupal SA-CORE-2013-003 対応

先日 Drupal 6 及び Drupal 7 に複数の脆弱性 SA-CORE-2013-003 の情報が出ました。
基本的にはアップデートして下さいという話なのですが、 ウェブサーバ経由でファイルが保存されるディレクトリにある .htaccess の手動での変更が必要になる場合があります。
ちょっと分かりにくいので簡単にまとめます。

管理画面の「現状報告」を開きます。
admin/reports/status です。
ここで Not fully protected と表示されている場合は修正の必要があります。

管理画面の「ファイルシステム」を確認します。
Drupal 6 の場合は admin/settings/file-system で、 Drupal 7 の場合は admin/config/media/file-system です。
ここで設定されているディレクトリにある .htaccess のバックアップを取ってから、 以下のように修正します。

Drupal 6 の場合:

# Turn off all options we don't need.
Options None
Options +FollowSymLinks

# Set the catch-all handler to prevent scripts from being executed.
SetHandler Drupal_Security_Do_Not_Remove_See_SA_2006_006
<Files *>
  # Override the handler again if we're run later in the evaluation list.
  SetHandler Drupal_Security_Do_Not_Remove_See_SA_2013_003
</Files>

# If we know how to do it safely, disable the PHP engine entirely.
<IfModule mod_php5.c>
  php_flag engine off
</IfModule>
# PHP 4, Apache 1.
<IfModule mod_php4.c>
  php_flag engine off
</IfModule>
# PHP 4, Apache 2.
<IfModule sapi_apache2.c>
  php_flag engine off
</IfModule>

Drupal 7 の場合:

# Turn off all options we don't need.
Options None
Options +FollowSymLinks

# Set the catch-all handler to prevent scripts from being executed.
SetHandler Drupal_Security_Do_Not_Remove_See_SA_2006_006
<Files *>
  # Override the handler again if we're run later in the evaluation list.
  SetHandler Drupal_Security_Do_Not_Remove_See_SA_2013_003
</Files>

# If we know how to do it safely, disable the PHP engine entirely.
<IfModule mod_php5.c>
  php_flag engine off
</IfModule>

ちなみにこれらは、 SA-CORE-2013-003 の 「Warning: Fixing the code execution prevention may require server configuration; please read:」 の章の下にある例のテキストです。

公開ディレクトリ以外、 つまりテンポラリ及び(使用していれば)プライベートについては以下の一行も追加してあげて下さい。

Deny from all

管理画面の「現状報告」( admin/reports/status )に戻り、 Not fully protected の表示が無くなっていれば修正完了です。

カテゴリ: 

sakura