beta

Cockpit CMSでは静的コンテンツを管理しない方が良い理由

無料で使えて記事管理としては優秀なCockpit CMSですが、静的コンテンツだけは管理しない方が良い理由をまとめました。

公開日:2021年10月6日

管理画面のURLが晒される

ここが最大の理由と言っても良いでしょう。

Cockpit CMSは記事管理をするだけのCMSなので、セキュリティを考えたら管理画面のURLは外部に知られないのがベストです。特にCockpit CMSは開発規模が小さいので、脆弱性の対応など万全ではありません。

静的コンテンツを配信するとなると、HTML上にURLが記載されるのは避けられないので、管理画面のURLを公開しているようなものです。

ファイルパス・ファイル名を自由にできない

静的コンテンツの管理は、変数にしたり、英語にしたりと運用方針がそれぞれのサイトによって違うかと思いますが、Cockpit CMSの場合、

/storage/uploads/年/月/日

というディレクトリに自動的に配置されます。WordPressのまんまです。アップロード先のディレクトリは指定が可能ですが、年月日のところは変更できないようです。

URLが長くなる上に、ファイルを探すときのディレクトリの中を見にいくので非常面倒です。

複数サイトの管理に不向き

ファイルパスを自由にできないことも一つの要因ですが、サイトごとに静的コンテンツのディレクトリを変えたり、当たり前ですが配信ドメインを変えたりできません。

フォルダ機能がありますが、あくまでタグを貼っているだけなので、実態のファイルは先程の「/storage/uploads/年/月/日」です。

こうなってくると、どのサイトの画像なのかもごちゃごちゃになってしまいますし、他のサイトの画像も参照できるようになってしまいます(記事についてはTokenで制限・管理ができます)。

そもそもレンタルサーバーに静的コンテンツは置かない方が良い

静的ファイルは一度アップしたらそのまま放置することが多いので、それこそクラウド向きのファイルです。レンタルサーバーに置いておくと、レンタルサーバーを移転するときに転送作業が面倒です。

個人的には、レンタルサーバーは基本的には移転するとものと考えて運用すべきだと思っているので、長期間保存するデータには不向きかなと思います。

どうやって対策すべきか?

記事の管理はCockpit CMSでも、静的ファイルは別管理にしよう

どのみちCockpit CMSにアップロードするなら、別のサーバーやクラウドにアップロードするのも作業としては同じなので、別のサーバーにしましょう。

静的コンテンツと考えるとやはりクラウドがファーストチョイスでしょうか。冗長性が高いだけでなく、CDNでキャッシュするようにすれば転送料もほとんどかからないので、変にレンタルサーバーで配信するよりも安心です。

規模が大きくない(ファイルサイズがそこまで大きくない)のであれば、Google Cloud Storageなら、Always Free枠で無料で配信できます。

何かしらのサーバーでproxyする

どうしてもクラウドや別のサーバーを使わないというのであれば、せめてproxyするのが良いでしょう。Cloudflare Workersなどで、静的ファイルをそのままproxyして配信すれば、少なくともCockpit CMSのドメインは隠蔽できます。

Bulk origin override | Cloudflare Workers

ただし、Cloudflare Workersにも無料で使える上限があるので注意しましょう。

Author

Koji Kadoma
Member of codit.work

新着ノート

新着コード