セキュリティ対応について

2014年11月12日 at 15:40

環境情報

# concrete5 Version
5.6.3.2

# concrete5 Packages
None

# concrete5 Overrides
languages/ja_JP, themes/olive_sample

# concrete5 Cache Settings
Block Cache - Off
Overrides Cache - Off
Full Page Caching - Off

# Server Software
Apache/2.4.10 (Unix) OpenSSL/1.0.1i PHP/5.4.31 mod_perl/2.0.8-dev Perl/v5.16.3


Webサイトを公開する際、サーバ情報を隠蔽するのは一般的によく行われる、セキュリティ対策の一つかと理解しています。

具体的には、httpヘッダーで
Apacheのバージョン情報や、X-Powered-Byヘッダーを出力しないようにするなど。

cmsとしてconcrete5を導入した場合は、生成されるhtmlに
<meta name="generator" content="concrete5 - 5.6.3.2" />


といった、generator情報がmetaタグに含まれる為、ここからPHPが動作している事が類推できます。

そこで、このmetaタグの出力を抑止したいのですが、
/concrete/config/base.php

で、定数”APP_VERSION_DISPLAY_IN_HEADER”をfalseに設定しただけでは、
<meta name="generator" content="concrete5" />


と成るだけで、concrete5を使用している事、そのものを隠蔽する事が出来ません。

対応するとしたら、
/concrete/elements/header_required.php
を改修してしまうのが、安直な方法なのですが、そうした場合、バージョンアップによって、
/concrete/elements/header_required.php
の変更部分が元に戻ってしまうと考えられますが、

/concrete/elements/header_required.php
を改修せずに、generator情報を隠蔽する方法があれば、ご教示頂けないでしょうか?

タグ:

Re: セキュリティ対応について

2014年11月13日 at 5:26
オーバーライドをお使いください。
http://concrete5-japan.org/help/developer/introduction/overrides/
 

Re: セキュリティ対応について

2014年11月13日 at 7:07
hissyさん

ご返信、有り難う御座います。

オーバーライド。
有り難う御座いました。
これは直に確認できると思いますので、
今日にでも、実装して確認させて頂きます。
 

オーバーライドの結果(確認できました)

2014年11月14日 at 15:00
ご教示頂いた、オーバーライドを働かせ

/elements/header_required.php

に、metaタグの出力仕様を変更したphpファイルを置く事で、対応出来る事が確認出来ました。

有り難う御座います。
 

Re: セキュリティ対応について

2017年7月13日 at 20:55
随分以前の質問に恐縮ですが

<?php
if (defined('APP_VERSION_DISPLAY_IN_HEADER') && APP_VERSION_DISPLAY_IN_HEADER) {
echo '<meta name="generator" content="concrete5 - ' . APP_VERSION . '" />';
}
else {
echo '<meta name="generator" content="concrete5" />';
}
?>
をコメントアウトすると不具合が出ます。

具体的にどのようにしたら良いのでしょうか。
 

Re: Re: セキュリティ対応について

2017年7月14日 at 9:26
質問の後phpの中をコメントアウトした所ソースに出力されなくなりました。