suchen
HeimBackend-EntwicklungPHP-TutorialAusführliche Erklärung, wie PHP Thunder-Downloads verhindert

Wie verhindert PHP Thunder-Downloads? In diesem Artikel wird hauptsächlich die detaillierte Erklärung der PHP-Methoden zur Verhinderung von Hotlinks und Thunder-Downloads als Referenz für alle vorgestellt. Ich hoffe, es hilft allen.

Hotlinking verhindern:

Prinzip: Wenn der Server uns auffordert, eine Datei herunterzuladen, erhalten wir einen Link, und dann finden wir die Datei über diesen Link und dann laden Sie es herunter. Das bedeutet also, dass dieser Link vorhanden sein muss. Wie kann man also Hotlinks verhindern? Das bedeutet, dass es sich bei dem Ihnen zur Verfügung gestellten Link nicht um einen echten Dateilink handelt. Das ist leicht vorstellbar. Wie können wir Ihnen also ermöglichen, die Datei herunterzuladen, ohne Ihnen einen echten Link zu geben?

Wenn wir PHP zum Erstellen von Webseiten verwenden, fügen wir immer PHP-Code in die Mitte des HTML-Codes ein, verwenden dann PHP, um den verbleibenden Code zu generieren, und übergeben ihn dann an den Client, was bedeutet, dass der Client dies tut Akzeptieren Sie es als Ergebnis der Ausführung unseres PHP-Skripts. Das heißt: Wenn das Ergebnis der Ausführung meines PHP-Skripts die Datei ist, die Sie herunterladen möchten. Auf diese Weise haben wir einen Datei-Hotlink-Schutz erreicht. Das heißt, der Link, den Sie erhalten können, ist diese PHP-Datei, und dann wird diese sich ständig ändernde PHP-Datei in die Datei umgewandelt, die Sie herunterladen möchten.

Der Code lautet wie folgt:

$FileAddress : 文件的相对路径。
$DownloadName : 文件下载到客户端的名字。
if(file_exists($FileAddress) && $file=fopen($FileAddress,'r')) { //首先要判断文件是否存在,如果文件跟本不存在的话,后边的代码也是白费。
 Header('content-type:application/octet-stream'); //声明文件类型,这里是为了让客户端下载它,而不是打开它,所以声明为未知二进制文件。否则客户端会根据其文件类型在线打开它。
 Header('content-Length:'.filesize($FileAddress)); //声明文件的大小,告诉客户端这个文件的大小,否则客户端下载的时候看不到进度。
 Header('content-disposition:attachment;filename='.$DownloadName); //声明文件名,这里就是告诉客户端它要下载的文件的名字,否则名字就会是你php文件的名字。
 echo fread($file,filesize($FileAddress)); //这里就是将加载的文件echo出来,因此这个php文件不能出现其他任何的文字,就是说这里若是出现了任何其他的输出的话都会输出到客户端下载的文件里。
 fclose($file); //最后关闭句柄。
}

Der obige Code hat die Aufgabe, Hotlinking zu verhindern, erfolgreich abgeschlossen und muss nur diese beiden Variablen definieren. Diese beiden Variablen können über GET abgerufen werden. Wenn wir beispielsweise den tatsächlichen Link der Datei ihrer Nummer in der Datenbank zuordnen, müssen wir nur eine Datei-ID abrufen, um die Datei herunterzuladen, um die Sicherheit unserer tatsächlichen Dateiadresse zu gewährleisten. . Natürlich können Sie auch den echten Link zur Datei verschlüsseln. Kurz gesagt: Erwähnen Sie den echten Link einfach nicht und platzieren Sie ihn dort, wo der Client ihn sehen kann.

Thunder-Downloads verhindern

Tatsächlich können wir mit dem obigen Code nur den Link ausblenden, aber nicht verhindern, dass der Client Thunder und andere Tools zum Herunterladen verwendet . Wie kann man also verhindern, dass es mit Tools wie Thunder heruntergeladen wird?

Wie ich bereits sagte, können wir den Pfad dieser Datei zur PHP-Datei auf verschiedene Arten ermitteln, sodass wir diese Informationen nur nicht zum Link hinzufügen müssen. Beispiel: Die Datei-ID kann per POST und die Datei-ID per Sitzung übertragen werden.

Das nenne ich: ausgefallene lizenzierte Downloads.

1. Wir können die Client-Sitzung in die heruntergeladene Header-Seite schreiben, um ihren Autorisierungscode zu speichern, die Datei-ID darin zu speichern und dann den Code zur Überprüfung der Sitzung in der heruntergeladenen PHP-Datei hinzuzufügen, sodass selbst wenn Der Client Es ist sinnlos, die Verbindung in Thunder Download einzugeben.

2. Wir können der Download-Header-Seite ein verstecktes Formular hinzufügen und es mit POST an PHP senden, das die Download-Funktion implementiert. Dadurch kann auch das Herunterladen von Drittanbieter-Tools verhindert werden.

Kurz gesagt, es gibt viele solcher Methoden. Die Hauptidee besteht darin, die Informationen und Links der herunterzuladenden Dateien zu trennen, sodass die Datei nicht mit nur einem Link heruntergeladen werden kann .

Verwandte Empfehlungen:

Aufteilen und Zusammenführen von PHP-Dateien (Haltepunkt-Wiederaufnahme)

Betrieb der PHP-Datei selbst

Eine kurze Einführung in die PHP-Dateisperre und Prozesssperre

Das obige ist der detaillierte Inhalt vonAusführliche Erklärung, wie PHP Thunder-Downloads verhindert. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Wie können Sie Sitzungsangriffe für Sitzungen verhindern?Wie können Sie Sitzungsangriffe für Sitzungen verhindern?Apr 28, 2025 am 12:25 AM

Zu den wirksamen Methoden zur Verhinderung fester Sitzungsangriffe gehören: 1. Regenerieren Sie die Sitzungs -ID, nachdem sich der Benutzer angemeldet hat; 2. Verwenden Sie einen sicheren Algorithmus für Sitzungs -ID -Generierung; 3.. Implementieren Sie den Timeout -Mechanismus für Sitzungen; 4. Verschlüsseln Sie Sitzungsdaten mithilfe von HTTPS. Diese Maßnahmen können sicherstellen, dass die Anwendung bei festgelegten Sitzungen unzerstörbar ist.

Wie implementieren Sie eine Sitzung ohne Sitzung und Authentifizierung?Wie implementieren Sie eine Sitzung ohne Sitzung und Authentifizierung?Apr 28, 2025 am 12:24 AM

Die implementierende Sitzungsfreie Authentifizierung kann durch die Verwendung von JSONWEBTOKENS (JWT), einem tokenbasierten Authentifizierungssystem, erreicht werden, bei dem alle erforderlichen Informationen im Token ohne serverseitige Sitzungsspeicher gespeichert werden. 1) Verwenden Sie JWT, um Token zu generieren und zu überprüfen, 2) Stellen Sie sicher, dass HTTPS verwendet wird, um zu verhindern, dass Token abgefangen werden.

Was sind einige häufige Sicherheitsrisiken mit PHP -Sitzungen verbunden?Was sind einige häufige Sicherheitsrisiken mit PHP -Sitzungen verbunden?Apr 28, 2025 am 12:24 AM

Zu den Sicherheitsrisiken von PHP -Sitzungen gehören hauptsächlich Sitzungshijacking, Sitzungsfixierung, Sitzungsvorhersage und Sitzungsvergiftung. 1. Session -Entführungen können durch Verwendung von HTTPS und Schutz von Cookies verhindert werden. 2. Die Sitzungsfixierung kann vermieden werden, indem die Sitzungs -ID regeneriert wird, bevor sich der Benutzer einmeldet. 4. Die Sitzungsvergiftung kann durch Überprüfung und Filterungsdaten verhindert werden.

Wie zerstören Sie eine PHP -Sitzung?Wie zerstören Sie eine PHP -Sitzung?Apr 28, 2025 am 12:16 AM

Um eine PHP -Sitzung zu zerstören, müssen Sie zuerst die Sitzung starten, dann die Daten löschen und die Sitzungsdatei zerstören. 1. Verwenden Sie Session_Start (), um die Sitzung zu starten. 2. Verwenden Sie Session_unset (), um die Sitzungsdaten zu löschen. 3. Verwenden Sie schließlich Session_destroy (), um die Sitzungsdatei zu zerstören, um die Datensicherheit und die Ressourcenfreigabe zu gewährleisten.

Wie können Sie den Standard -Save -Pfad in PHP ändern?Wie können Sie den Standard -Save -Pfad in PHP ändern?Apr 28, 2025 am 12:12 AM

Wie ändere ich den Standard -Sitzungsweg von PHP? Es kann durch die folgenden Schritte erreicht werden: Verwenden Sie Session_save_path ('/var/www/sessions'); Session_start (); in PHP -Skripten, um den Sitzungsspfad zu setzen. Setzen Sie in der Datei php.ini, um den Sitzungsspfad global zu ändern. Verwenden Sie Memcached oder Redis, um Sitzungsdaten wie ini_set ('Session.Save_handler', 'memcached') zu speichern; ini_set (

Wie ändern Sie Daten, die in einer PHP -Sitzung gespeichert sind?Wie ändern Sie Daten, die in einer PHP -Sitzung gespeichert sind?Apr 27, 2025 am 12:23 AM

TomodifyDatainaphpSession, startTheSessionwithSession_Start (), dann $ _SessionToSet, modify, orremovevariables.1) startTheSession.2) setOrmodifySessionvariabling $ _Session.3) removeVariables mit ()

Geben Sie ein Beispiel für die Speicherung eines Arrays in einer PHP -Sitzung.Geben Sie ein Beispiel für die Speicherung eines Arrays in einer PHP -Sitzung.Apr 27, 2025 am 12:20 AM

Arrays können in PHP -Sitzungen gespeichert werden. 1. Starten Sie die Sitzung und verwenden Sie Session_Start (). 2. Erstellen Sie ein Array und speichern Sie es in $ _Session. 3. Abrufen Sie das Array durch $ _Session ab. 4. Optimieren Sie Sitzungsdaten, um die Leistung zu verbessern.

Wie funktioniert die Müllsammlung für PHP -Sitzungen?Wie funktioniert die Müllsammlung für PHP -Sitzungen?Apr 27, 2025 am 12:19 AM

Die PHP -Sitzungsmüllsammlung wird durch einen Wahrscheinlichkeitsmechanismus ausgelöst, um abgelaufene Sitzungsdaten zu beseitigen. 1) Legen Sie die Auslöserwahrscheinlichkeit und die Sitzungslebenszyklus in der Konfigurationsdatei ein. 2) Sie können Cron-Aufgaben verwenden, um Hochlastanwendungen zu optimieren. 3) Sie müssen die Häufigkeit und Leistung von Müllsammlungen ausgleichen, um Datenverlust zu vermeiden.

See all articles

Heiße KI -Werkzeuge

Undresser.AI Undress

Undresser.AI Undress

KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover

AI Clothes Remover

Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool

Undress AI Tool

Ausziehbilder kostenlos

Clothoff.io

Clothoff.io

KI-Kleiderentferner

Video Face Swap

Video Face Swap

Tauschen Sie Gesichter in jedem Video mühelos mit unserem völlig kostenlosen KI-Gesichtstausch-Tool aus!

Heiße Werkzeuge

SecLists

SecLists

SecLists ist der ultimative Begleiter für Sicherheitstester. Dabei handelt es sich um eine Sammlung verschiedener Arten von Listen, die häufig bei Sicherheitsbewertungen verwendet werden, an einem Ort. SecLists trägt dazu bei, Sicherheitstests effizienter und produktiver zu gestalten, indem es bequem alle Listen bereitstellt, die ein Sicherheitstester benötigen könnte. Zu den Listentypen gehören Benutzernamen, Passwörter, URLs, Fuzzing-Payloads, Muster für vertrauliche Daten, Web-Shells und mehr. Der Tester kann dieses Repository einfach auf einen neuen Testcomputer übertragen und hat dann Zugriff auf alle Arten von Listen, die er benötigt.

mPDF

mPDF

mPDF ist eine PHP-Bibliothek, die PDF-Dateien aus UTF-8-codiertem HTML generieren kann. Der ursprüngliche Autor, Ian Back, hat mPDF geschrieben, um PDF-Dateien „on the fly“ von seiner Website auszugeben und verschiedene Sprachen zu verarbeiten. Es ist langsamer und erzeugt bei der Verwendung von Unicode-Schriftarten größere Dateien als Originalskripte wie HTML2FPDF, unterstützt aber CSS-Stile usw. und verfügt über viele Verbesserungen. Unterstützt fast alle Sprachen, einschließlich RTL (Arabisch und Hebräisch) und CJK (Chinesisch, Japanisch und Koreanisch). Unterstützt verschachtelte Elemente auf Blockebene (wie P, DIV),

WebStorm-Mac-Version

WebStorm-Mac-Version

Nützliche JavaScript-Entwicklungstools

SublimeText3 Mac-Version

SublimeText3 Mac-Version

Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Senden Sie Studio 13.0.1

Senden Sie Studio 13.0.1

Leistungsstarke integrierte PHP-Entwicklungsumgebung