目次
回复内容:
ホームページ バックエンド開発 PHPチュートリアル 请问怎么让服务器上的所有文件带cookies才能访问下载?

请问怎么让服务器上的所有文件带cookies才能访问下载?

Jun 06, 2016 pm 08:43 PM
linux nginx php

请问各位大神,怎么才能让服务器上的文件必须要在URL包含cookies才能下载?
特别是是PHP重定向到真实文件后(PHP的方法我试过了,但是不能满足需求,需要的是哪怕PHP访问中携带了cookies,然后重定向到真实文件了,也需要带cookies才能下载真实文件)

比如像这个:
http://gdl.lixian.vip.xunlei.com/download?fid=0hR2BkWuxG+yu8/SSvHED9qPY3qIM6UBAAAAAPgVMM+tcuZfzsSdkpa5AVaDBXss&mid=666&threshold=150&tid=2D7127D9AC515342BBCF3C2534A28B6E&srcid=4&verno=1&g=F81530CFAD72E65FCEC49D9296B9015683057B2C&scn=t13&i=F81530CFAD72E65FCEC49D9296B9015683057B2C&t=1&ui=352085248&ti=749121079740928&s=27603848&m=0&n=01397CB40C657475702D58903A2D786C384F549C3A00000000&ff=0&co=7146348578E47321F9ADCDC2E65E5373&cm=1&pk=lixian&ak=1:1:6:4&e=2000000000&ms=10485760&ck=7D925ECC1C9C2CD1098D37BAE3D249E3&at=BFBB6AE6FDC257D3BC3A9FDBFAE45212
通过cookies验证后,重定向到:
http://vod39.t6.lixian.vip.xunlei.com:443/download?fid=vlMMl5rBhEpw40dAJIWIAzFss/IbL0I1AAAAAGp5LQx3uSW+VWah1LGOGJx68Tey&mid=666&threshold=150&tid=7A76D65FCFBEDD0710723B8E9472CF47&srcid=4&verno=1&g=6A792D0C77B925BE5566A1D4B18E189C7AF137B2&scn=t6&i=D4FDF4149CF91CA34FC1A528291BA4D4&t=4&ui=346853248&ti=767920006498817&s=893529883&m=0&n=01226220F8D6E42E482500D46D34B8DFC784E7348CA2CBABD7B71F892F34000000&ff=0&co=907FCD65B217061FF4D04BDEBFBD25D5&cm=1&pk=lixian&ak=1:0:2:3&e=2000000000&ms=10485760&ck=3C1C62B8C80D6C0C47C833D5A92DEF1D&at=D9AD4F55BC8C22C248A75E6E2459686E&k=1&ts=1410592408
还是需要带cookies才能下载这个文件。
(第二个url好像不是PHP的,因为下载的文件真实地址就是这个,没有再经过跳转和重定向了)
(url只是举例,访问不了的)

怎么实现这样的?

服务器是nginx/linux

回复内容:

请问各位大神,怎么才能让服务器上的文件必须要在URL包含cookies才能下载?
特别是是PHP重定向到真实文件后(PHP的方法我试过了,但是不能满足需求,需要的是哪怕PHP访问中携带了cookies,然后重定向到真实文件了,也需要带cookies才能下载真实文件)

比如像这个:
http://gdl.lixian.vip.xunlei.com/download?fid=0hR2BkWuxG+yu8/SSvHED9qPY3qIM6UBAAAAAPgVMM+tcuZfzsSdkpa5AVaDBXss&mid=666&threshold=150&tid=2D7127D9AC515342BBCF3C2534A28B6E&srcid=4&verno=1&g=F81530CFAD72E65FCEC49D9296B9015683057B2C&scn=t13&i=F81530CFAD72E65FCEC49D9296B9015683057B2C&t=1&ui=352085248&ti=749121079740928&s=27603848&m=0&n=01397CB40C657475702D58903A2D786C384F549C3A00000000&ff=0&co=7146348578E47321F9ADCDC2E65E5373&cm=1&pk=lixian&ak=1:1:6:4&e=2000000000&ms=10485760&ck=7D925ECC1C9C2CD1098D37BAE3D249E3&at=BFBB6AE6FDC257D3BC3A9FDBFAE45212
通过cookies验证后,重定向到:
http://vod39.t6.lixian.vip.xunlei.com:443/download?fid=vlMMl5rBhEpw40dAJIWIAzFss/IbL0I1AAAAAGp5LQx3uSW+VWah1LGOGJx68Tey&mid=666&threshold=150&tid=7A76D65FCFBEDD0710723B8E9472CF47&srcid=4&verno=1&g=6A792D0C77B925BE5566A1D4B18E189C7AF137B2&scn=t6&i=D4FDF4149CF91CA34FC1A528291BA4D4&t=4&ui=346853248&ti=767920006498817&s=893529883&m=0&n=01226220F8D6E42E482500D46D34B8DFC784E7348CA2CBABD7B71F892F34000000&ff=0&co=907FCD65B217061FF4D04BDEBFBD25D5&cm=1&pk=lixian&ak=1:0:2:3&e=2000000000&ms=10485760&ck=3C1C62B8C80D6C0C47C833D5A92DEF1D&at=D9AD4F55BC8C22C248A75E6E2459686E&k=1&ts=1410592408
还是需要带cookies才能下载这个文件。
(第二个url好像不是PHP的,因为下载的文件真实地址就是这个,没有再经过跳转和重定向了)
(url只是举例,访问不了的)

怎么实现这样的?

服务器是nginx/linux

第二个可能是PHP的,

实现方式是验证,

PHP验证,PHP验证完了之后就输出文件内容,验证不通过就输出错误信息或者不输出东西。

别再跳转了 验证完cookie合法之后直接返回文件

不大可能实现应用程序服务器规则来控制,一般是php验证后跳转到真实地址。

用拦截器验证先

以前我曾经找人用C写了一个Nginx 扩展来用。
现在可以用Lua简单实现了。

nginx可以实现x-sendfile,把下载目录设置为internal即可

http://wiki.nginx.org/XSendfile
http://kovyrin.net/2006/11/01/nginx-x-accel-redirect-php-rails/

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

AI Hentai Generator

AI Hentai Generator

AIヘンタイを無料で生成します。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

PHPの未来:適応と革新 PHPの未来:適応と革新 Apr 11, 2025 am 12:01 AM

PHPの将来は、新しいテクノロジーの傾向に適応し、革新的な機能を導入することで達成されます。1)クラウドコンピューティング、コンテナ化、マイクロサービスアーキテクチャに適応し、DockerとKubernetesをサポートします。 2)パフォーマンスとデータ処理の効率を改善するために、JITコンパイラと列挙タイプを導入します。 3)パフォーマンスを継続的に最適化し、ベストプラクティスを促進します。

PHP対Python:違いを理解します PHP対Python:違いを理解します Apr 11, 2025 am 12:15 AM

PHP and Python each have their own advantages, and the choice should be based on project requirements. 1.PHPは、シンプルな構文と高い実行効率を備えたWeb開発に適しています。 2。Pythonは、簡潔な構文とリッチライブラリを備えたデータサイエンスと機械学習に適しています。

PHP:それは死にかけていますか、それとも単に適応していますか? PHP:それは死にかけていますか、それとも単に適応していますか? Apr 11, 2025 am 12:13 AM

PHPは死にかけていませんが、常に適応して進化しています。 1)PHPは、1994年以来、新しいテクノロジーの傾向に適応するために複数のバージョンの反復を受けています。 2)現在、電子商取引、コンテンツ管理システム、その他の分野で広く使用されています。 3)PHP8は、パフォーマンスと近代化を改善するために、JITコンパイラおよびその他の機能を導入します。 4)Opcacheを使用してPSR-12標準に従って、パフォーマンスとコードの品質を最適化します。

H5:ツール、フレームワーク、およびベストプラクティス H5:ツール、フレームワーク、およびベストプラクティス Apr 11, 2025 am 12:11 AM

H5開発で習得する必要があるツールとフレームワークには、Vue.JS、React、Webpackが含まれます。 1.Vue.jsは、ユーザーインターフェイスの構築に適しており、コンポーネント開発をサポートします。 2.複雑なアプリケーションに適した仮想DOMを介したページレンダリングを最適化します。 3.Webpackは、モジュールのパッケージングに使用され、リソースの読み込みを最適化します。

Redisでサーバーを開始する方法 Redisでサーバーを開始する方法 Apr 10, 2025 pm 08:12 PM

Redisサーバーを起動する手順には、以下が含まれます。オペレーティングシステムに従ってRedisをインストールします。 Redis-Server(Linux/Macos)またはRedis-Server.exe(Windows)を介してRedisサービスを開始します。 Redis-Cli ping(Linux/macos)またはRedis-Cli.exePing(Windows)コマンドを使用して、サービスステータスを確認します。 Redis-Cli、Python、node.jsなどのRedisクライアントを使用して、サーバーにアクセスします。

phpmyAdminの脆弱性の概要 phpmyAdminの脆弱性の概要 Apr 10, 2025 pm 10:24 PM

PHPMyAdminセキュリティ防衛戦略の鍵は次のとおりです。1。PHPMyAdminの最新バージョンを使用し、PHPとMySQLを定期的に更新します。 2.アクセス権を厳密に制御し、.htaccessまたはWebサーバーアクセス制御を使用します。 3.強力なパスワードと2要素認証を有効にします。 4.データベースを定期的にバックアップします。 5.機密情報が公開されないように、構成ファイルを慎重に確認します。 6。Webアプリケーションファイアウォール(WAF)を使用します。 7.セキュリティ監査を実行します。 これらの測定は、不適切な構成、古いバージョン、または環境セキュリティのリスクにより、PHPMyAdminによって引き起こされるセキュリティリスクを効果的に削減し、データベースのセキュリティを確保することができます。

Linuxの5つの柱:彼らの役割を理解する Linuxの5つの柱:彼らの役割を理解する Apr 11, 2025 am 12:07 AM

Linuxシステムの5つの柱は次のとおりです。1。Kernel、2。SystemLibrary、3。Shell、4。FileSystem、5。SystemTools。カーネルはハードウェアリソースを管理し、基本的なサービスを提供します。システムライブラリは、アプリケーション用の事前コンパイルされた機能を提供します。シェルは、ユーザーがシステムと対話するインターフェイスです。ファイルシステムはデータを整理して保存します。また、システムツールはシステム管理とメンテナンスに使用されます。

単一のスレッドレディスの使用方法 単一のスレッドレディスの使用方法 Apr 10, 2025 pm 07:12 PM

Redisは、単一のスレッドアーキテクチャを使用して、高性能、シンプルさ、一貫性を提供します。 I/Oマルチプレックス、イベントループ、ノンブロッキングI/O、共有メモリを使用して同時性を向上させますが、並行性の制限、単一の障害、および書き込み集約型のワークロードには適していません。

See all articles