Heim > Backend-Entwicklung > PHP-Tutorial > Vermögenszugriffsbeschränkungsmethoden - unerwünschte Besucher blockieren

Vermögenszugriffsbeschränkungsmethoden - unerwünschte Besucher blockieren

尊渡假赌尊渡假赌尊渡假赌
Freigeben: 2025-02-20 10:23:10
Original
892 Leute haben es durchsucht

Asset Access Restriction Methods - Block Unwanted Visitors

Vermögenszugriffsbeschränkungsmethoden - unerwünschte Besucher blockieren

Key Takeaways

  • Die Implementierung der Zugriffskontrolle in Ihr Vermögen ist für die Sicherheit von entscheidender Bedeutung. Whitelisting ist ein empfohlener Ansatz, bei dem ein Gatekeeper nur vertrauenswürdige Unternehmen auf Ihr Vermögen zugreifen kann. Dieser Gatekeeper kann auf dem HTTP -Server oder dem Anwendungscode platziert werden, um Tools zur Überprüfung des http_host zu überprüfen.
  • Der HTTP -Server kann die Zugriffskontrolle effizient verarbeiten, ohne den Anwendungscode für jede Anforderung zu starten. Abhängig vom Server können unterschiedliche Methoden wie mod_rewrite oder zulassen/verweigern/leugnen/leugnen/leugnen/leugnen/leugnen in Nginx in nginx. Die Skalierbarkeit dieses Ansatzes kann jedoch eine Herausforderung sein, wenn es viele Domänen zur Verwaltung oder häufigen Änderungen gibt.
  • Zugriffskontrolle auf der Anwendungscodeebene bietet mehr Flexibilität. Diese Methode kann auch Iframe -Situationen bewältigen, in denen der Empfehler keine Informationen über den Iframe -Status enthält. Sowohl HTTP-Server- als auch Anwendungscode-Methoden sind jedoch nicht narrensicher, und ein auf Token basierender Gatekeeper wie OAuth wird für eine erweiterte Sicherheit empfohlen.

Beim Erstellen einer fantastischen Web -App oder -webelle möchten wir manchmal, dass Personen Teile unserer Web -App/-website in ihre eigene einbetten können. Das könnte ein Iframe sein, der eine Schaltfläche "Gefällt mir", ein einfaches Bild, das sie wiederverwenden oder sogar unsere gesamte App in einem Iframe eingebettet haben.

Aber wie kontrollieren wir, wer Zugriff hat, wer unsere Bandbreite verbrauchen und unseren Service abfragen kann?

Wir definieren das Problem als Zugriff bis Assets

Mit Vermögenswerten meinen wir: alles, was von unserer Website abfragt werden kann.

Zugriffsbeschränkung: Erlauben Sie einigen, blockieren Sie alle

Wenn wir über die Zugriffskontrolle sprechen, geben wir die Sicherheitsdomäne ein. Und wenn sie über Sicherheit spricht, sollte das Whitelisting der Ansatz sein, der zum Problem angegangen wird. Es ist einfacher zu kontrollieren, wer auf Ihr -Vermögenswerte zugreifen darf, als zu kontrollieren, wer nicht ist. Es ist einfach unmöglich, alle Boogie -Monster des Internets zu kennen.

Um unser -Vermögenswerte zu schützen , stellen wir einen Gatekeeper ein, um nur diejenigen zu lassen, denen wir vertrauen. Nachdem wir nach dem Einstellung Zugang zu einem Whitelist, den wir kontrollieren, und ihn das ganze schwere Heben machen lassen. Problem gelöst. Aber wie soll der Gatekeeper anheben?

Hubtaktik

Abhängig davon, wie sicher Sie möchten, dass der Gatekeeper sein soll und was der Kunde verlangt, kann verschiedene Taktiken angewendet werden.

Ein häufiger verwendeter Ansatz ist die Überprüfung des Referer -Headers. Diese Methode hat 3 große Nachteile:

  1. Der Referer wird auch festgelegt, wenn Personen mit einem Link
  2. auf Ihre Website zugreifen
  3. Der Referer wird vom Client an Ihren Server gesendet und kann geändert werden
  4. Der Referer wird möglicherweise überhaupt nicht eingestellt

Bei statischen Vermögenswerten wie Bildern, JS und CSS sind diese Nachteile jedoch kein Problem. Ihr Vermögen sollte nur geladen werden, wenn Benutzer unsere Website direkt (oder von einer vertrauenswürdigen Website) besuchen. Die allgemeine Idee ist es, andere zu blockieren, die sie heißen. Der Referator wird daher immer auf Ihrer Whitelist sein. Es sei denn, Sie vertrauen sich nicht selbst - aber dann haben Sie größere Probleme.

bro, heben Sie überhaupt?

Abhängig vom verwendeten Setup fließt die Abfrage durch eine Reihe von Gates . Das einfache Setup ist: Client -> HTTP -Server -> Anwendungscode

Wo sitzt Ihr Gatekeeper? Der Kunde ist ein De -facto -No -GO -GO -GO -GEHALT, da er ein unzuverlässiger Lügenstück des Menschen ist. Der HTTP -Server und der Anwendungscode hingegen sind nützliche Optionen. Beide geben uns starke Werkzeuge, um den http_host zu überprüfen.

http -Server wissen, wie man

hebt

Die Stärke, wenn Ihr HTTP -Server Ihre Zugriffskontrolle verarbeitet, ist die Geschwindigkeit. Für jede Anfrage müssen der Anwendungscode nicht starten. Dies kann die Leistung drastisch verbessern, da wir keinen gesamten Anwendungsstapel/Thread (z. B. mod_php) in den Speicher laden müssen.

Abhängig von Ihrem HTTP -Server sind verschiedene Lösungen verfügbar.

Apache

In Apache gibt es zwei verschiedene Methoden. Wir können mod_rewrite verwenden oder zulassen/verweigern.

Die mod_rewrite -Methode:

# Turn mod_rewrite on
RewriteEngine On

# if it is not trusted.domain.tld block it
RewriteCond %{HTTP_REFERER} !^trusted\.domain\.tld$ [NC]
RewriteCond %{HTTP_REFERER} !^trusted\.tld$ [NC]
RewriteRule ^ - [F]
Nach dem Login kopieren
Nach dem Login kopieren

mod_rewrite wird von den meisten Hosting -Anbietern unterstützt.

Die Methode zulassen/verweigern:

#specify the files to guard, block all the assets
<files "*.*">
  #block everyone
  Deny from all
  #allow trusted ones
  Allow from trusted.tld trusted.domain.tld
</files>
Nach dem Login kopieren
Nach dem Login kopieren

nicht alle Hosts unterstützen diese Einstellungen.

nginx

Das httpreferermodul in nginx gibt uns die wirklich cool valid_referers: Also, was wir tun müssen, ist HTTP-Code 444, wenn eine nicht treue Domäne versucht, auf unsere Vermögenswerte zuzugreifen die Verbindung ohne Senden von Header…

http -Server denken nicht
location / {
  valid_referers trusted.tld trusted.domain.tld;
  if ($invalid_referer) {
    return   444;
  }
}
Nach dem Login kopieren
Nach dem Login kopieren

Das große Problem hier ist die Skalierbarkeit: Was ist, wenn wir 1000 Domänen haben, die in der Lage sein müssen, auf unsere Vermögenswerte zuzugreifen? Was ist, wenn sich die Liste der Domänen häufig ändert?

Für jede kleine Bearbeitung müssten wir in unsere Konfigurationsdateien eintauchen - und je mehr Sie manuell wechseln, desto mehr kann schief gehen.

Anwendungscode weiß, was zu tun ist

Ihre Zugriffskontrolle auf Ihrer Anwendungscode -Ebene bedeutet viel mehr Flexibilität. Man könnte seinen Gatekeeper in kürzester Zeit in Betrieb nehmen:

Was ist mit diesen Iframes?
<span><span><?php
</span></span><span><span>//the whitelist we control
</span></span><span><span>$whitelist = array(
</span></span><span>	<span>'trusted.tld',
</span></span><span>	<span>'trusted.domain.tld'
</span></span><span><span>);
</span></span><span>
</span><span><span>//the referer
</span></span><span><span>$referer = parse_url($_SERVER["HTTP_REFERER"], PHP_URL_HOST);
</span></span><span>
</span><span><span>//the gatekeeper
</span></span><span><span>if ( !in_array($referer, $whitelist) )
</span></span><span><span>{
</span></span><span>	<span>throw new GateKeeperDoesNotApprove;
</span></span><span><span>}</span></span>
Nach dem Login kopieren

, wie erwähnt, ist es nicht immer eine gute Idee, sich auf den Referator zu verlassen. Es sind nicht nur Daten von unserem unzuverlässigen Menschen, sondern gibt uns auch keine Ahnung darüber, ob wir uns in einem Iframe befinden oder nicht. Es gibt einfach keine Möglichkeit zu wissen.

Wir könnten jedoch einen Killer beauftragen, um unserem Gatekeeper zu helfen. Unser Killer wird an die Menschen versandt, die misstrauisch aussehen (z. B. diejenigen mit einem nicht vertrauenswürdigen Referator). Der Killer wird JS als seine Waffe verwenden:

# Turn mod_rewrite on
RewriteEngine On

# if it is not trusted.domain.tld block it
RewriteCond %{HTTP_REFERER} !^trusted\.domain\.tld$ [NC]
RewriteCond %{HTTP_REFERER} !^trusted\.tld$ [NC]
RewriteRule ^ - [F]
Nach dem Login kopieren
Nach dem Login kopieren

Leider hat jemand, der aus einer nicht vertrauenswürdigen Domäne kommt, denselben Referatoren wie jemand anderes, der auf uns zugreift, indem wir einen Iframe aus dieser nicht vertrauenswürdigen Domäne verwenden. In den Vermögenswerten wird der Referator jedoch auf unsere Domain festgelegt (auch in einer Iframe -Situation) - daher ist das Senden eines Killers hier übertrieben. Einfach zu leugnen ist ausreichend - oder Sie können ein zufälliges Kätzchenbild senden.

Deshalb haben wir unseren Hitman -Überprüfen, ob wir uns in einem Iframe befinden. Wenn ja, lassen wir ihn unser Ziel töten:

#specify the files to guard, block all the assets
<files "*.*">
  #block everyone
  Deny from all
  #allow trusted ones
  Allow from trusted.tld trusted.domain.tld
</files>
Nach dem Login kopieren
Nach dem Login kopieren

Das einzige, was wir wissen müssen, ist, dass unser Gatekeeper den Killer zu der Nutzlast hinzufügt, die an den Kunden gesendet wird. Einfach!

location / {
  valid_referers trusted.tld trusted.domain.tld;
  if ($invalid_referer) {
    return   444;
  }
}
Nach dem Login kopieren
Nach dem Login kopieren

Dieser Code ist kein Produktionsnachweis. Es dient als Beispiel.

Was ist mit echter Sicherheit?

Die hier gelieferten Lösungen werden Sie gegen die meisten Boogie -Monster schützen. Beide Lösungen sind jedoch nicht narrensicher. Der erste verwendet Daten vom Client, das zweite ist JavaScript, das vom Client ausgeführt wird.

Die sichere Art und Weise ist die Verwendung eines auf Token basierenden Gatekeeper. OAuth ist wahrscheinlich der Typ, den Sie für den Job hier wollen, aber das liegt außerhalb des Rahmens dieses Artikels.

häufig gestellte Fragen (FAQs) zu Asset Access Restriktionsmethoden

Was sind die verschiedenen Methoden zur Einschränkung der Asset -Zugriffsbeschränkung? Diese Methoden umfassen IP -Blocking, das die Blockierung des Zugriffs von bestimmten IP -Adressen blockiert. Geo-Blocking, das den Zugang basierend auf geografischer Lage einschränkt; und Blockierung von Benutzer-Agent, die den Zugriff von bestimmten Browsern oder Geräten verhindert. Weitere Methoden sind HTTP -Referrer -Blockierungen, die den Zugriff basierend auf der überweisenden Website und des Kennwortschutzes einschränken, wodurch Benutzer ein Kennwort eingeben müssen, um Zugriff zu erhalten.

IP -Blockierung ist eine Methode, mit der verhindern, dass bestimmte IP -Adressen auf einen digitalen Asset zugreifen. Dies erfolgt durch Hinzufügen der IP -Adressen zu einer "Blacklist" in der Konfigurationsdatei des Servers. Alle Anfragen, die von diesen IP-Adressen stammen Beschränken Sie den Zugriff auf digitale Vermögenswerte basierend auf dem geografischen Standort. Dies wird häufig verwendet, um regionale Lizenzvereinbarungen einzuhalten oder den Zugang aus Regionen zu verhindern, die für Cyber ​​-Angriffe bekannt sind. Geo-Blocking funktioniert, indem der Standort des Benutzers basierend auf ihrer IP-Adresse ermittelt wird.

Wie kann das Blockieren von Benutzer-Agent-Blockieren bei der Einschränkung des Asset-Zugriffs verwendet werden? Dies erfolgt durch die Identifizierung der Benutzer-Agent-Zeichenfolge, die vom Browser oder Gerät beim Erstellen einer Anforderung an den Server gesendet wird. Wenn die Benutzer-Agent-Zeichenfolge auf der 'Blacklist' des Servers 'übereinstimmt, wird die Anforderung abgelehnt. Eine Methode, mit der der Zugriff basierend auf der überweisenden Website einschränken wird. Dies geschieht durch Überprüfen des HTTP -Referrer -Headers, der die URL der Website enthält, aus der die Anfrage stammt. Wenn sich der Empfehler auf der "Blacklist" des Servers befindet, wird die Anforderung abgelehnt. Digitales Asset, indem Benutzer ein Kennwort eingeben müssen. Dies wird häufig für private oder sensible Vermögenswerte verwendet. Der Server fordert den Benutzer nach einem Kennwort auf, wenn er versucht, auf den Asset zuzugreifen, und nur diejenigen, die das richtige Kennwort eingeben, erhalten Zugriff. 🎜> Ja, mehrere Vermögenszugriffsbeschränkungsmethoden können zusammen verwendet werden, um ein höheres Sicherheitsniveau bereitzustellen. Sie können beispielsweise IP -Blocking verwenden, um den Zugriff aus bestimmten IP -Adressen zu verhindern und dann den Kennwortschutz zu verwenden, um den Zugriff auf autorisierte Benutzer weiter zu beschränken. >

Implementieren von Methoden zur Einschränkung von Asset Access -Restriktion auf Ihrer Website beinhaltet normalerweise die Änderung der Konfigurationsdatei Ihres Servers. Der genaue Prozess hängt von der von Ihnen verwendeten Serversoftware und der spezifischen Einschränkungsmethode ab, die Sie implementieren möchten. Wenn Sie ein hohes Maß an Sicherheit bieten können, können sie auch legitime Benutzer blockieren. Zum Beispiel kann IP-Blocking Benutzer blockieren, die ein VPN oder einen Proxy verwenden, und Geo-Blocking-Blocking kann Benutzer blockieren, die ins Ausland reisen. Daher ist es wichtig, die potenziellen Auswirkungen auf Benutzer vor der Implementierung dieser Methoden sorgfältig zu berücksichtigen. Netzwerk (CDN) zum Verteilen Ihres Vermögens, mithilfe einer Firewall zum Schutz Ihres Servers oder mithilfe eines Sicherheits -Plugins oder -dienstes, der eine Reihe von Sicherheitsfunktionen bietet. Diese Alternativen können ein hohes Maß an Sicherheit ohne die potenziellen Nachteile von Vermögenszugriffsbeschränkungsmethoden bieten.

Das obige ist der detaillierte Inhalt vonVermögenszugriffsbeschränkungsmethoden - unerwünschte Besucher blockieren. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Erklärung dieser Website
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
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage