KalturaにUPしたコンテンツのセキュリティはどのようになっているか?

Kltuaには元々アクセス制限の機能が備わっている。

Kalturaアクセス制限のかけかた

端的に言うと以下のコンテンツ保護機能がある

  1. 動画の直リンク禁止機能
  2. RTMPのストリーミングによる配信

1は動画をコピペでいろんなサイトに貼り付けられないようにする制限のこと。要は意図しない直リンク禁止機能。crossdomain.xmlで実現できる機能とほぼ同等と思っていい。2はストリーミング配信で、クライアントにキャッシュが残ることを防ぐ機能。ただ、ストリーミング配信単体で運用しても、コンテンツ保護の観点からは気休め程度にしかならないだろう。

さらに上記機能に加えて以下のような保護がなされている


● FLVファイルのリアルパス隠蔽機能

Kalturaのプレイヤーを利用する限り、ユーザーの目にFLVの実体パスが目に触れることはない。FLVの実体パスはウィジェットのHTMLには埋まっておらず、SWFに埋まっている。/opt/kaltura/web/content/entry/data/ 以下にFLVの実体ファイルは保管されている。ファイル名が分かっていればFLVに直接アクセスすることは可能。

しかし、Kalutra自身はすべてのコンテンツをコントローラー(index.php)経由で返却しているので、/opt/kaltura/web/content/entry/data/ にApacheのアクセス制限をかけることで、容易に直接アクセスを制限することができる。/etc/httpd/conf.d/my_kaltura.conf の中に上記ディレクトリのアクセス制限を書けばいいだろう。

もっとも、セキュリティの観点からはもう一つ欲しい機能がある。それは閲覧範囲の制限。


● 閲覧する人を制限する機能(IP制限であったり、あるいは認証システム連携して閲覧範囲を制限するとか)

実はこの機能もKalturaには備えられている。上記で紹介した「Kalturaアクセス制限のかけかた」の手順で、最後に「Advanced security & Pey-per-view」を選べばよい。

前述の通りKalturaはすべてのコンテンツをindex.php経由で返しており、これによってコンテンツの公開範囲などをコントロールしている。このKalturaの閲覧制限との連携をとる仕組みを「Kaltura Session」といい、このセッション機能を使えば、たとえばPHPで開発したアプリなどとの認証連携が可能になるという理屈のようだ。

ドキュメントはきわめて少なく、探したがそれらしい情報は公式ブログ(英語)くらいにしかなかった。

Create KS protected videos with free preview | Kaltura Developer Blog

あとは公式ドキュメント

KalturaAPI:startsession – Kaltura Wiki

キャンドゥ、入社3年目の息子が代表取締役に

キャンドゥ社長死去、報道後から株価急落 【SANSPO.COM】

遺体に目立った外傷はなく、死後2週間ほどたっているとみられる。死因は不明だが、病死の可能性が高いという。

一部上場企業の社長が二週間音信不通でも会社が回るってある意味凄いというか・・・。各所で話題になっていますが、実はそれ以上に興味深いのが以前の株主総会の頃から続く、同族経営の権限引き渡し。

キャンドゥの第16回定時株主総会

城戸社長さんの息子さんですよね?会社を私物化しているのではないでしょうか?

社長急死「キャンドゥ」株価が急落 代表取締役2人を選任【 SANKEI DIGITAL 】

100円ショップ大手のキャンドゥは21日、城戸博司社長の急死に伴い、北川清水販売本部本部長と城戸一弥経営企画室室長の2人を21日付で代表取締役にする人事を発表した。

手際が良いのか、悪いのか。城戸一弥代表取締役は確か今年で25歳。入社3年目。一部上場企業でもトヨタのように一族が社長をしている例もありますから、単純に一族だから云々という事ではないのですが・・・。むしろ株主総会から、今年の騒動に至るまでの一連の流れを見ている限り、同族経営を思い切り悪い方向に発揮しているような気がします。まぁそこをどれだけ是正できるかが新社長(次の株主総会の頃くらいに多分決まる)の手腕でしょうけど。

PHPからExcelファイルを出力する際に必要なヘッダ

header("Pragma: public");
header("Expires: 0");
header("Cache-Control: must-revalidate, post-check=0, pre-check=0");
header("Content-Type: application/force-download");
header("Content-Type: application/octet-stream");
header("Content-Type: application/download");
header("Content-Transfer-Encoding: binary");
header('Content-Type: application/vnd.openxmlformats-officedocument.spreadsheetml.sheet');
header('Content-Disposition: attachment;filename="' . $filename . '"');
header('Cache-Control: max-age=0');