bg_image
header

CORS - Cross Origin Resource Sharing

CORS (Cross-Origin Resource Sharing) ist ein Sicherheitsmechanismus, der von Webbrowsern implementiert wird, um zu kontrollieren, welche Webseiten auf Ressourcen von anderen Domains zugreifen dürfen. Standardmäßig blockieren Browser aus Sicherheitsgründen sogenannte Cross-Origin-Anfragen, also Anfragen von einer Webseite an eine andere Domain, ein anderes Protokoll oder einen anderen Port.

Warum gibt es CORS?

Ohne CORS könnten bösartige Webseiten im Hintergrund Anfragen an andere Server senden (z. B. API-Server oder Banking-Seiten), wodurch sensible Daten gestohlen oder missbraucht werden könnten (Cross-Site Request Forgery, CSRF). CORS sorgt dafür, dass nur explizit erlaubte Webseiten auf Ressourcen zugreifen dürfen.

Wie funktioniert CORS?

Wenn eine Webanwendung eine Cross-Origin-Anfrage stellt (z. B. von http://example.com an https://api.example.com), sendet der Browser automatisch eine CORS-Anfrage. Der Server kann dann in den HTTP-Headern antworten, ob die Anfrage erlaubt ist:

  1. Ohne CORS-Header:
    Der Browser blockiert die Anfrage.

  2. Mit CORS-Headern:
    Der Server kann mit Access-Control-Allow-Origin: * (alle Domains) oder einer bestimmten Domain (Access-Control-Allow-Origin: https://example.com) antworten. Damit wird der Zugriff erlaubt.

Preflight-Requests

Für einige Anfragen (z. B. mit PUT, DELETE, speziellen Headern) führt der Browser einen Preflight-Request mit der OPTIONS-Methode aus. Der Server muss dann mit den richtigen CORS-Headern antworten, um die Hauptanfrage zu ermöglichen.

Fazit

CORS ist eine wichtige Sicherheitsmaßnahme, die verhindert, dass unerlaubte Webseiten auf fremde Ressourcen zugreifen. Entwickler müssen serverseitig die richtigen Header setzen, um den Zugriff für legitime Clients zu erlauben.


Uniform Resource Locator - URL

Eine URL (Uniform Resource Locator) ist eine Zeichenfolge, die verwendet wird, um die Adresse einer Ressource im Internet oder einem anderen Netzwerk eindeutig zu identifizieren und zu lokalisieren. Eine URL besteht typischerweise aus mehreren Teilen, die verschiedene Informationen über die Ressource angeben:

  1. Protokoll: Das Protokoll gibt an, wie die Ressource aufgerufen oder übertragen werden soll. Typische Protokolle sind HTTP (Hypertext Transfer Protocol), HTTPS (HTTP Secure), FTP (File Transfer Protocol) und FTPS (FTP Secure).

  2. Hostname: Der Hostname identifiziert den Server, auf dem die Ressource gehostet wird. Dies kann eine Domain wie "example.com" oder eine IP-Adresse sein, die den genauen Speicherort des Servers angibt.

  3. Port (optional): Der Port ist eine numerische Adresse auf dem Server, die den Zugriff auf bestimmte Dienste ermöglicht. Standardports werden oft implizit verwendet (z. B. Port 80 für HTTP), aber für spezielle Dienste können auch benutzerdefinierte Ports angegeben werden.

  4. Pfad: Der Pfad gibt den Speicherort der Ressource auf dem Server an. Er kann sich auf ein bestimmtes Verzeichnis oder eine Datei beziehen.

  5. Abfragezeichenfolge (optional): Die Abfragezeichenfolge wird verwendet, um zusätzliche Parameter an den Server zu übergeben, die zur Identifizierung oder Anpassung der angeforderten Ressource verwendet werden können. Die Abfragezeichenfolge beginnt mit einem Fragezeichen und enthält normalerweise eine Reihe von Schlüssel-Wert-Paaren, die durch das kaufmännische Und-Zeichen (&) getrennt sind.

Zusammen bilden diese Teile einer URL die vollständige Adresse einer Ressource im Internet oder einem anderen Netzwerk. URLs werden in Webbrowsern, Hyperlinks, APIs und anderen Internetanwendungen verwendet, um auf Ressourcen zuzugreifen und sie zu identifizieren.

 


Firewall

Eine Firewall ist eine Netzwerksicherheitsvorrichtung oder Software, die den eingehenden und ausgehenden Netzwerkverkehr anhand vordefinierter Sicherheitsregeln überwacht und kontrolliert. Sie fungiert als Barriere zwischen einem vertrauenswürdigen internen Netzwerk und unvertrauenswürdigen externen Netzwerken, wie zum Beispiel dem Internet, um unbefugten Zugriff auf das interne Netzwerk zu verhindern oder zu blockieren.

Firewalls können in verschiedenen Formen implementiert werden:

  1. Netzwerk-Firewall: Diese Art von Firewall wird typischerweise am Rand eines Netzwerks eingesetzt, zum Beispiel zwischen dem internen Netzwerk einer Organisation und dem Internet. Sie überprüft Datenpakete, die durch das Netzwerk geleitet werden, und filtert sie basierend auf vordefinierten Regeln, um den Datenverkehr zu erlauben oder zu blockieren.

  2. Hostbasierte Firewall: Hostbasierte Firewalls werden auf einzelnen Computern oder Geräten installiert, um den Datenverkehr auf Geräteebene zu kontrollieren. Sie bieten eine zusätzliche Sicherheitsebene, indem sie den Datenverkehr anhand spezifischer Regeln filtern, die für diesen Host konfiguriert sind.

Firewalls arbeiten auf der Grundlage verschiedener Filtermethoden:

  • Paketfilterung: Paketfilternde Firewalls überprüfen Datenpakete, während sie durch das Netzwerk geleitet werden, basierend auf Kriterien wie Quell- und Ziel-IP-Adressen, Portnummern und Protokollen. Sie treffen Entscheidungen, um Pakete basierend auf vordefinierten Regeln zu erlauben oder zu blockieren.

  • Zustandsorientierte Inspektion: Zustandsorientierte Inspektionsfirewalls behalten den Zustand aktiver Verbindungen im Auge und verwenden diese Informationen, um Entscheidungen darüber zu treffen, ob Datenverkehr erlaubt oder blockiert werden soll. Sie führen Aufzeichnungen über den Zustand von Verbindungen, wie zum Beispiel TCP-Handshakes, und erlauben nur Datenverkehr, der zu legitimen, etablierten Verbindungen passt.

  • Proxy-Firewalls: Proxy-Firewalls fungieren als Vermittler zwischen Clients und Servern, indem sie den Datenverkehr abfangen und inspizieren, bevor er zu seinem Ziel weitergeleitet wird. Sie können zusätzliche Sicherheit bieten, indem sie die IP-Adressen des internen Netzwerks verbergen und fortgeschrittene Sicherheitsmaßnahmen wie Inhaltsfilterung und Anwendungsschichtinspektion anwenden.

Firewalls sind ein grundlegender Bestandteil der Netzwerksicherheit und helfen dabei, unbefugten Zugriff, Datenverstöße, Malware-Infektionen und andere Cyberbedrohungen durch die Durchsetzung von Zugriffskontrollrichtlinien und die Filterung potenziell schädlichen Datenverkehrs zu verhindern oder zu minimieren.

 


Port

Ein Port ist ein logischer Kommunikationsendpunkt, der es verschiedenen Anwendungen auf einem Computer ermöglicht, Daten zu senden und zu empfangen. In der Netzwerktechnologie bezieht sich ein Port auf eine Nummer, die einer bestimmten Anwendung oder einem Dienst auf einem Computer zugeordnet ist. Diese Nummer wird verwendet, um den Datenverkehr zu dieser Anwendung oder diesem Dienst zu steuern.

Ports werden normalerweise durch eine 16-Bit-Zahl dargestellt und können einen Wert zwischen 0 und 65535 haben. Die ersten 1024 Ports werden als bekannte Ports bezeichnet und sind für spezifische Dienste reserviert. Beispielsweise ist Port 80 üblicherweise für HTTP (Hypertext Transfer Protocol) reserviert, das für den Webverkehr verwendet wird, während Port 443 normalerweise für HTTPS (HTTP Secure) reserviert ist, das für den verschlüsselten Webverkehr verwendet wird.

Ports werden häufig in Verbindung mit dem Transmission Control Protocol (TCP) und dem User Datagram Protocol (UDP) verwendet, die beide Protokolle der Internetprotokollfamilie (TCP/IP) sind. TCP ist eine verbindungsorientierte Protokollsuite, während UDP eine verbindungslose Protokollsuite ist. Beide Protokolle verwenden Ports, um Daten zwischen verschiedenen Anwendungen zu vermitteln.