我们的产品是电子书,通过 WordPress 的http://www.tipsandtricks-hq.com/ eStore 插件以 .epub 和 .mobi 格式提供,该插件会生成加密的下载链接。
大约 5 天前突然出现问题,之前运行良好大约三个月
当客户通过下载链接下载购买的产品时,所有 .epub 文件都会损坏,并且在尝试将 ePub 导入图书馆时,Adobe Digital Editions 会出错
所有 .mobi 文件在下载然后加载到 Kindle 时都会损坏,Kindle 会出现类似的错误
我们尝试关闭谷歌网址缩短器,错误
我们已经用 IE、Chrome 和 Firefox 测试了链接,错误
我们在没有加密链接的情况下进行了测试,通过浏览器中的直接链接下载文件,它们工作正常,没有错误
我们学到了什么:
我们已经测试了使用 FTP 以 ASCII 和二进制模式下载......使用 ASCII 我们得到与使用加密下载链接相同的错误
使用 FTP 传输的文件使用 ASCII 和 Binary 后大小相同,但运行哈希检查显示内容不同
我们正在使用 FileZilla 在 PC 和 Mac 上通过 FTP 进行测试,但是错误只发生在 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 吗?
非常感谢你