Encrypt articles/posts in WordPress
はじめに
※作成からワードプレスに公開までの流れは以下の記事を参考にしてください。
ワードプレスで特定のコンテンツを暗号化できるプラグイン「Encrypt Blogs」を開発しました。このプラグインは、時間ベースの暗号化機能を実装したもので、PHP暗号化とGPG暗号化の両方をサポートしています。今回は、開発の経緯や暗号化機能の重要性、実際の活用シーンについてお話しさせていただきます。
使い方
1.ワードプレスのプラグインからEncrypt Blogsをインストール
2.設定→Encrypt Blogsから鍵の設定・入力
※GPGキーの場合、事前に生成する必要がありますが、PHPの場合はパスフレーズを決めるだけで使用が可能になっています。
3.記事作成の際にEncrypted Contentを選択
4.時間や暗号化の表示種類を選択
※START DATE(開始時刻)とEND DATE(終了時刻)を入力しないと、そのコンテンツは永久的に暗号化します。
※暗号化の表示モードは非表示・暗号化文字表示・暗号化せず表示・黒塗りの4パターンになっています。
実際に使用してみるとこのような感じになります(暗号化表示形式は黒塗り)
使用例
・新製品発表会の事前記事やプレリリースの下書きに使用する
・SNSでの拡散タイミングのコントロールをする
・ステップ別に配信するタイプの教育コンテンツへの使用
・季節型コンテンツの計画的公開に使用
・限定公開による価値の創出
暗号化の安全性
今回のプラグインの暗号化システムは、NSAでも承認されているAES-256-CBC暗号化方式(PHPのopenssl_encrypt()を使用)
またはPGP暗号化方式(GnuPG拡張機能経由)を実装し、初期化ベクトル(IV)の安全な生成、暗号化キーのソルト付きハッシュ化によるセキュアな保存、WordPress標準のSQLインジェクション対策とXSS対策、nonce検証による不正リクエストの防止を行っており、エンタープライズレベルのセキュリティを実現しています。
まとめ
今回作成した暗号化プラグインはソースコードを公開しています。
是非皆さん一度使ってみて評価していただけると幸いです。
ソースコード(github)