RTCIceCandidate: address-Eigenschaft
Die schreibgeschützte address
-Eigenschaft der RTCIceCandidate
-Schnittstelle ist ein String, der die IP-Adresse des Geräts angibt, das die Quelle des Kandidaten ist.
Die address
ist standardmäßig null
, wenn nicht anders angegeben.
Der Wert des address
-Feldes wird aus dem candidateInfo
-Optionsobjekt gesetzt, das an den RTCIceCandidate()
-Konstruktor übergeben wird.
Sie können den Wert von address
nicht direkt im Optionsobjekt angeben, aber sein Wert wird automatisch aus der candidate
-a-line des Objekts extrahiert, wenn diese korrekt formatiert ist.
Wert
Ein String, der die IP-Adresse angibt, von der der Kandidat kommt.
Hinweis: Wenn port
null
ist — und
port
vom user agent unterstützt wird — wird das
Übergeben des Kandidaten an addIceCandidate()
fehlschlagen und eine OperationError
-Ausnahme werfen.
Sicherheitshinweise
Es ist wichtig zu beachten, dass, obwohl WebRTC nicht erfordert, dass die beiden Peers einer
RTCPeerConnection
die tatsächlichen IP-Adressen voneinander kennen, die
address
-Eigenschaft auf RTCIceCandidate
kann mehr
Informationen über die Quelle des entfernten Peers preisgeben, als der Benutzer erwartet. Die IP-Adresse
kann verwendet werden, um Informationen über die Lage des entfernten Geräts, die Netzwerkstruktur usw. abzuleiten. Sie kann auch für Browser-Fingerprinting-Zwecke verwendet werden.
Die Kandidaten-IP-Adressen werden immer der Anwendung über
address
offengelegt, und unerwünschte Anwendungen können im Gegenzug potenziell die
Adresse dem Benutzer offenbaren. Dies kann ohne die Zustimmung des entfernten Peers geschehen.
Anwendungen, die mit Blick auf den Datenschutz und die Sicherheit der Benutzer entwickelt werden, können sich dafür entscheiden, die
erlaubten Kandidaten auf nur Relay-Kandidaten zu beschränken. Dadurch wird verhindert, dass die Adresse des Remote-Benutzers offengelegt wird, aber der Pool der verfügbaren Kandidaten, aus denen gewählt werden kann, wird reduziert.
Um dies zu tun, konfigurieren Sie die ICE-Transport-Policy des ICE-Agenten mit einem Objekt, das der configuration
-Eigenschaft entspricht, wie in RTCPeerConnection.setConfiguration
beschrieben, etwa so:
const rtcConfig = {
iceServers: [
{
urls: "turn:my-turn.server.ip",
username: "username",
credential: "password",
},
],
iceTransportPolicy: "relay",
};
Indem Sie iceTransportPolicy
auf "relay"
setzen,
werden Host-Kandidaten (Kandidaten, bei denen die IP-Adresse die eigene IP-Adresse des Peers ist) aus dem Kandidatenpool ausgeschlossen, ebenso wie alle anderen Kandidaten, die keine Relay-Kandidaten sind.
Nutzungshinweise
Betrachten Sie diese SDP-Attributzeile (a-line), die einen ICE-Kandidaten beschreibt:
a=candidate:4234997325 1 udp 2043278322 192.0.2.172 44323 typ host
Das fünfte Feld, "192.0.2.172"
, ist die IP-Adresse in dieser a-line-Zeichenkette des Kandidaten.
Beispiele
Dieser Code-Ausschnitt verwendet den Wert von address
, um eine Sperrfunktion für IP-Adressen zu implementieren.
if (ipBanList.includes(candidate.address)) {
rejectCandidate(candidate);
} else {
acceptCandidate(candidate);
}
Spezifikationen
Specification |
---|
WebRTC: Real-Time Communication in Browsers # dom-rtcicecandidate-address |
Browser-Kompatibilität
BCD tables only load in the browser