web-dev-qa-db-ja.com

Wordpressの投稿の暗号化

私は、完全に非公開のWordpressブログを作成することを検討していて、 David Hewsonsのかなり詳細なチュートリアル のような方法で役に立つブログ/チュートリアルを見つけました。

私は現在、ニースでプライベートなシステムを(オンラインで)設置しています。ブログにアクセスするにはログイン認証情報が必要です。今ここに問題があります。私のWebサーバーが何らかの方法でハッキングされ(これが起こるかもしれないという事実に無知ではないでしょう)、そして私のデータベースにアクセスされれば私の投稿はすべて閲覧可能になるでしょう。エンドでの仕事.

自分自身で投稿を暗号化するための構築済みの解決策を探しましたが、コーディングプラグインに関してどこから手をつけたらよいかわからないので、Wordpressプラグインを書くための正しい方向への手助けが必要ですWordpressでは、どんなヘルプ/チュートリアルリンクも評価されるでしょう。

APIなどのWordpressのやり方ではないにしても、私はPHP/MySQLのかなり広範な知識を持っています。

4
Snaver

私が知っている限りでは、WordPress(または普通のPHP app)だけでは、あなたが求めることは実際には不可能です。 WPのデータベース認証情報と同じジレンマです。FTPがハッキングされた場合、ハッカーはwp-config.phpからデータベースのログイン/パスワードを取得します。 WordPress(または他のすべてのPHP app)はデータベースアクセスにそれらを必要とするため、それらを保護することは不可能です。たとえそれらがある時点で暗号化されて保存されていたとしても、それらは解読される必要があるでしょう。

ポストと同じこと - ある時点で暗号化されたポストをデータベースに保存したとしても、WordPressはそれらを復号化する必要があります。 WordPressがそれらを復号化できるのであれば、アカウントをハッキングした人も同様です。

WordPressのインストールとはどういうわけかキーを分けることができるかもしれませんが、それは単に問題を動かしています - いまだにキーをハッキング/漏洩から保護することを考える必要があります。

3
Rarst

そのため、データベースに入る前にテキストを暗号化し、データベースから出る前にそれを復号化するシステムが必要です。パスワードをサーバーに保存したくない場合は、暗号化されたデータを必要とする要求を出すたびに、ブラウザ経由でパスワードを提供する方法を見つける必要があります。

これはPHPでも可能ですが、JavaScriptでも可能です。投稿コンテンツの暗号化のみを要求し、他のデータ(タイトル、日付など)を要求しないで質問を単純化する場合、おそらくあなたのコードを管理者側のTinyMCEイベントにフックすることができます。これはあなたのパスワードを尋ねる(あるいはそれを Local Storage あるいはあなたのコンピュータから離れない別の安全な場所に記憶しておく)、テキストがエディタに表示される前に復号化し、それを保存。このように、WordPressが見るのは暗号化されたテキストです。 (おそらく、サーバー側では何も変更されないように、あらゆる種類のコンテンツフィルタを無効にする必要があります。)

ブログの公開側でも同じことができます。暗号化されたデータのブロックをクライアントに送信し、それをJavaScriptを使用して復号化します。

あなたが唯一の読み書きをしているのであれば、このスキームは実行可能です。さもなければ、あなたは暗号化を共有する方法を必要とするでしょうが、誰もが異なるパスワードを持っているようにします。しかし、あなたが本当にシングルユーザーのシナリオにいるのなら、WordPressがあなたの仕事に最適な媒体であると確信していますか?多分 Evernote または暗号化をサポートしている他のメモ作成ソリューションがお勧めですか?

1
Jan Fabry

このサイトを見てみることをお勧めします。私はWordPressに慣れていないので、まだ自分のWordPressブログを作成していません。しかし、私自身のブログを始めて調査している間に、私も特定のブログ投稿を暗号化する機能を持ちたかったのです。

グーグル内で検索した後、私はこのウェブサイト http://www.vincentcheung.ca/jsencryption/につまずいた -

基本的にブログ記事はJavaScriptとPHPを利用して暗号化されています。デフォルトでは投稿は128ビットAESで暗号化されていますが、PHPを再コンパイルすることで256ビットAESサポートを追加できます。 VincentのアイデアをどうにかWordPressに統合する方法があるかどうかを知りたいので、私はまだ自分のWordPressブログを作成し始めていません。

Vincentの作品に基づいてプラグインを作成することで、自分のサイトにアクセスして投稿を暗号化し、その結果のテキスト/コードをWordPressの投稿に貼り付けることなく、WordPress内で投稿を暗号化できます。

投稿が復号化されると、すべてクライアント側で行われます。パスワードまたは復号化キーはサーバーに送信されることはなく、復号化はすべてJavaScriptを介してクライアント側で行われます。これは、たとえハッカーがあなたのデータベースを手に入れたとしても、暗号化された投稿を読むことができないということを意味します。鍵はデータベースに保存されていないからです!

私はPHPに精通していますが、自分でプラグインを作成するための優れたWordPressプラグインの作成方法についてはまだ十分に理解していません。

1
Casey

まさに。すべてがグループ公開鍵によって、クライアント側に保持されている複数の秘密鍵を使用して復号化できます。

ブログは技術的には非公開ですので、暗号化されたデータのみを格納する中央サーバーで秘密鍵を管理する必要はありません。

0
Alex Devon

100%ではありませんが、1つのセキュリティ層が追加されます。base64_encodeを使用して特定のエントリを暗号化し、エンコードに、ユーザー名のmd5ハッシュから作成されたsaltを追加するプラグインを作成できます。 )、または同様のもの。 base64_decodeは非常に高速に動作し、ユーザーはおそらく遅延に気付かないでしょう。

0
Anachronous