私はワードプレスのプラグインに取り組んでいます。私のプラグインでは、ユーザーのワードプレスから私のサイト (サーバー側) にデータを転送する必要があります。そのために cURL を使用できますが、セキュリティをほとんど提供したくありません。HTTPS や SSL は使用できません。このデータは機密性が低く、証明書を購入する価値があるからです。どうやってやるの?公開鍵と秘密鍵のアルゴリズムか何か?また、どの形式でデータを転送すればよいですか? それらはいくつかの文字列です。これを行うための安全な方法を教えてもらえますか? MITM 攻撃が心配です。ありがとう。
3 に答える
これが解決策になるかどうかはわかりませんが、いつでも最後から情報を読むことができます. 情報をローカル ファイル (クライアントのプラグイン フォルダ内) に収集し、サーバーから (クローン スクリプトによって) 定期的にリモートで読み取ることができますか? そして次のようなものを使用します
file_get_contents("http:// wordpress pluginfolder ..... etc. ???
...プラグインフォルダーは常に同じ場所にあるため、URLは問題になりません...「安全に」の部分については、ファイルを保護して、自分だけが読み取れるようにします
ユーザー (独自のワードプレス サイトを持っているユーザー) に、プラグインの構成に保存するための一意の「トークン」をオプションとして提供していますか?
各ユーザーのトークンがあり、ユーザーが一致するトークンを持っている場合、そのトークンを使用してデータを暗号化および復号化できます。
トークン自体は暗号化されたデータと一緒に通信されることはないため、中間にいる人は暗号化を解除するのに非常に苦労します (不可能ではありませんが、SSH なしで得られる最善の方法です)。
次のアプローチを使用して、HTTP 経由で安全なデータを転送しています。データは、私がシリアライズしている Request オブジェクトです。このシリアル化されたオブジェクトは、以下のように暗号化さmcrypt_encrypt()
れます
$encrypted=base64_encode(mcrypt_encrypt(MCRYPT_RIJNDAEL_256, md5($key), $string, MCRYPT_MODE_CBC, md5(md5($key))));
ここで述べたように、curl を使用して暗号化されたデータをホストに POST します。
私のホストでは、次を使用してデータを復号化します
$decrypted = rtrim(mcrypt_decrypt(MCRYPT_RIJNDAEL_256, md5($key), base64_decode($encrypted), MCRYPT_MODE_CBC, md5(md5($key))), "\0");
次に、オブジェクトのシリアル化を解除します。また、セキュリティを強化するために塩を追加しています。
詳細な説明については、この投稿にアクセスしてください。