0

当社の製品は eBook であり、暗号化されたダウンロード リンクを生成する WordPress 用のhttp://www.tipsandtricks-hq.com/ eStore プラグインを介して .epub と .mobi の両方の形式で配信されます。

  • 問題は約 5 日前に突然始まり、以前は約 3 か月間正常に機能していました

  • 顧客がダウンロード リンクを介して購入したものをダウンロードすると、すべての .epub ファイルが破損し、ePub をライブラリにインポートしようとすると Adob​​e Digital Editions でエラーが発生する

  • ダウンロードしてKindleにロードすると、すべての.mobiファイルが破損し、Kindleで同様のエラーが発生する

  • Google の URL 短縮サービスをオフにしようとしましたが、エラーが発生しました

  • IE、Chrome、Firefox でリンクをテストしましたが、エラーが発生しました

  • ブラウザの直接リンクを介してファイルをダウンロードすることにより、暗号化されたリンクなしでテストしましたが、正常に動作し、エラーはありません

私たちが学んだこと:

  • FTP を使用して ASCII モードとバイナリ モードの両方でダウンロードをテストしました ... ASCII では、暗号化されたダウンロード リンクを使用した場合と同じエラーが発生します

  • FTP で転送されたファイルは、ASCII とバイナリを使用した後は同じサイズですが、ハッシュ チェックを実行すると、内容が異なることが示されます

  • FileZilla を使用して、PC と Mac の両方で FTP 経由でテストしていますが、エラーは PC でのみ発生します。

  • そのため、この問題はファイル転送の種類と PC に関係していると想定しています

  • /home/foo/bar/wp-content/plugins/wp-cart-for-digital-products/download.php に header("Content-Transfer-Encoding: binary"); が表示されます。そのため、暗号化されたリンクを使用するときにバイナリが強制されていると想定しています

暗号化されたリンク文字列に ASCII を強制する文字が含まれている可能性はありますか? 暗号化されたリンクの例を次に示します。

https://fu.com/bar/download.php?file=LRtro6WQMN12ip%2BEcL0TYS8sMZmSKOlkRedVCZyfACsqSllzCAjDp%2FZJyfQ2oq0ZP6vg1EMrR%2FOFC4B3wGDHl3N0u0sulcBhIfkOJ0C0UQh6

そして、ここに http ヘッダーを見てください。

Status: HTTP/1.1 200 OK
Date: Wed, 27 Feb 2013 14:55:47 GMT 
Server: Apache 
X-Powered-By: PHP/5.3.17 
Set-Cookie: PHPSESSID=7d61c9dd6ecbd321bea8cffg4a25d5e8; path=/ 
Expires: 0 
Cache-Control: public 
Pragma: public 
X-CF-Powered-By: WP 1.3.9 
Content-Description: File Transfer 
Content-Disposition: attachment; filename="Some-File-Name-Which-Was-Replaced.epub" 
Content-Transfer-Encoding: binary 
Content-Length: 5088032 
Connection: close 
Content-Type: application/epub+zip

他に何がこれを引き起こしている可能性がありますか? サーバーが .htaccess または apache 構成設定で ASCII を強制している可能性はありますか?

どうもありがとうございました

4

1 に答える 1

0

プログラマーの 1 人が、エディターで間違った文字エンコーディングを使用していました。PHP ファイルを UTF-8 (BOM オフ) または空白スペースまたは改行で処理する必要があり、ファイルの整合性になんらかの影響を与える可能性があります。

PHP ファイルの UTF-8 BOM 署名

WordPress の functions.php で問題のあるコード行:if ($bom != b"\xEF\xBB\xBF")

ï°¿HEX 値からデコードした犯人の HTML 文字コード:EF BB BF これは、破損した .epub ファイルの最初に現れるジャンク データでした。

functions.php は、WordPress で実行するたびに常にこのジャンク データを出力していました。

ついに問題の根本にたどり着いたことをうれしく思い、私たちを怒らせました! ははは!!!

平和で幸せなコーディングをあなたに

于 2013-03-01T15:41:50.897 に答える