Pakket | flash.net |
Klasse | public class SecureSocket |
Overerving | SecureSocket Socket EventDispatcher Object |
Taalversie: | ActionScript 3.0 |
Runtimeversies: | Flash Player 11, AIR 2 |
AIR-profielondersteuning: deze functie wordt ondersteund op alle desktopbesturingssystemen, maar niet op alle AIR for TV-apparaten. Op mobiele apparaten wordt deze functie ondersteund op Android en ook op iOS vanaf AIR 20. Met de eigenschap SecureSocket.isSupported
kunt u testen op ondersteuning tijdens runtime. Zie AIR-profielondersteuning voor meer informatie over API-ondersteuning voor meerdere profielen.
De protocollen SSL en TLS verschaffen een mechanisme om beide aspecten van een Secure Socket-verbinding af te handelen:
- Codering van gegevenscommunicatie via de socket
- Verificatie van de identiteit van de host via het hostcertificaat
De ondersteunde coderingsprotocollen zijn SSL 3.1 en hoger en TLS 1.0 en hoger. (TLS is de opvolger van SSL. TLS 1.0 komt overeen met SSL 3.1, TLS 1.1 komt overeen met SSL 3.2, enz.) SSL versie 3.0 of lager worden niet ondersteund.
Validatie van het servercertificaat wordt uitgevoerd met behulp van de vertrouwde opslagruimte en de certificaatvalidatie-ondersteuning van het clientplatform. U kunt bovendien uw eigen certificaten programmatisch toevoegen met de methode addBinaryChainBuildingCertificate()
. Deze API wordt momenteel niet ondersteund op iOS. Als u deze API op iOS gebruikt, wordt de uitzondering - 'ArgumentError: Fout #2004' gegenereerd
De SecureSocket-klasse maakt alleen verbinding met servers die geldige, vertrouwde certificaten hebben. U kunt er niet voor kiezen om ondanks een certificaatprobleem verbinding met een server te maken. Het is bijvoorbeeld niet mogelijk te verbinden met een server waarvan het certificaat is verlopen. Dit geldt ook voor een certificaat dat zich niet in een keten naar een vertrouwd ankercertificaat bevindt. Er wordt dan geen verbinding tot stand gebracht, ook als het certificaat anders wel geldig zou zijn.
De SecureSocket-klasse is handig voor het uitvoeren van gecodeerde informatie met een vertrouwde server. In andere opzichten gedraagt een SecureSocket-object zich zoals een normaal Socket-object.
Als u de SecureSocket-klasse wilt gebruiken, maakt u een SecureSocket-object (new SecureSocket()
). Stel daarna uw listeners in en voer SecureSocket.connect(host, port)
uit. Wanneer een verbinding met de server tot stand is gebracht, verzendt de socket een connect
-gebeurtenis. Een geslaagde verbinding is een verbinding waarvoor de beveiligingsprotocollen van de server worden ondersteund en het servercertificaat vertrouwd en geldig is. Als het certificaat niet gevalideerd kan worden, verzendt de socket de gebeurtenis IOError
.
Belangrijk: het Online Certificate Status Protocol (OCSP) wordt niet door alle besturingssystemen ondersteund. Gebruikers kunnen het controleren van het OCSP op individuele computers uitschakelen. Als OCSP niet wordt ondersteund of is uitgeschakeld en een certificaat niet de benodigde informatie bevat om intrekking te controleren met behulp van een Certificate Revocation List (CRL), wordt de certificaatintrekking niet gecontroleerd. Het certificaat wordt geaccepteerd als deze anders geldig is. Hierdoor zou een server een ingetrokken certificaat kunnen gebruiken.
Verwante API-elementen
Eigenschap | Gedefinieerd door | ||
---|---|---|---|
bytesAvailable : uint [alleen-lezen]
Het aantal beschikbare gegevensbytes voor het lezen in de invoerbuffer. | Socket | ||
bytesPending : uint [alleen-lezen]
Geeft het aantal resterende bytes in de schrijfbuffer aan. | Socket | ||
connected : Boolean [alleen-lezen]
Geeft aan of dit object Socket momenteel is verbonden. | Socket | ||
constructor : Object
Verwijzing naar het klasseobject of de constructorfunctie van een bepaalde objectinstantie. | Object | ||
endian : String
Geeft de bytevolgorde voor de gegevens aan. | Socket | ||
isSupported : Boolean [statisch] [alleen-lezen]
Geeft aan of beveiligde sockets op het huidige systeem worden ondersteund. | SecureSocket | ||
localAddress : String [alleen-lezen]
Het IP-adres waaraan deze socket gekoppeld is op een lokale machine. | Socket | ||
localPort : int [alleen-lezen]
De poort waaraan deze socket gekoppeld is op een lokale machine. | Socket | ||
objectEncoding : uint
Beheert de AMF-versie die bij het schrijven of lezen van een object wordt gebruikt. | Socket | ||
remoteAddress : String [alleen-lezen]
Het IP-adres van de machine op afstand waaraan deze socket is verbonden. | Socket | ||
remotePort : int [alleen-lezen]
De poort van de machine op afstand waaraan deze socket is verbonden. | Socket | ||
serverCertificate : X509Certificate [alleen-lezen]
Bewaart het X.509-certificaat dat van de server is verkregen nadat een veilige SSL/TLS-verbinding tot stand is gebracht. | SecureSocket | ||
serverCertificateStatus : String [alleen-lezen]
Retourneert de status van het servercertificaat. | SecureSocket | ||
timeout : uint
Hiermee wordt aangegeven hoeveel milliseconden er op een verbinding wordt gewacht. | Socket |
Methode | Gedefinieerd door | ||
---|---|---|---|
Maakt een nieuw SecureSocket-object. | SecureSocket | ||
Hiermee wordt een X.509-certificaat toegevoegd aan de lokale certificaatketen die door uw systeem wordt gebruikt voor validatie van het servercertificaat. | SecureSocket | ||
addEventListener(type:String, listener:Function, useCapture:Boolean = false, priority:int = 0, useWeakReference:Boolean = false):void
Registreert een gebeurtenislistenerobject bij een object EventDispatcher, zodat de listener een melding van een gebeurtenis ontvangt. | EventDispatcher | ||
Sluit de socket. | Socket | ||
[overschrijven]
Verbindt de socket met de opgegeven host en poort met behulp van SSL of TLS. | SecureSocket | ||
Verzendt een gebeurtenis naar de gebeurtenisstroom. | EventDispatcher | ||
Hiermee worden verzamelde gegevens uit de uitvoerbuffer van de socket verwijderd. | Socket | ||
Controleert of het object EventDispatcher listeners heeft geregistreerd voor een specifiek type gebeurtenis. | EventDispatcher | ||
Geeft aan of voor een object een opgegeven eigenschap is gedefinieerd. | Object | ||
Geeft aan of een instantie van de klasse Object zich in de prototypeketen van het object bevindt dat als parameter is opgegeven. | Object | ||
Geeft aan of de opgegeven eigenschap bestaat en kan worden opgesomd. | Object | ||
Leest een Booleaanse waarde uit de socket. | Socket | ||
Leest een byte met teken uit de socket. | Socket | ||
Leest het aantal gegevensbytes dat in de parameter length van de socket is opgegeven. | Socket | ||
Leest een IEEE 754-getal met drijvende komma en dubbele precisie uit de socket. | Socket | ||
Leest een IEEE 754-getal met drijvende komma en enkele precisie uit de socket. | Socket | ||
Leest een 32-bits geheel getal met teken uit de socket. | Socket | ||
Leest een multibyte-tekenreeks met de opgegeven tekenset uit de bytestream. | Socket | ||
readObject():*
Hiermee wordt een in AMF-indeling met serienummering gecodeerd object uit de socket gelezen. | Socket | ||
Leest een 16-bits geheel getal met teken uit de socket. | Socket | ||
Leest een byte zonder teken uit de socket. | Socket | ||
Leest een 32-bits geheel getal zonder teken uit de socket. | Socket | ||
Leest een 16-bits geheel getal zonder teken uit de socket. | Socket | ||
Leest een UTF-8-tekenreeks uit de socket. | Socket | ||
Leest het aantal UTF-8-gegevensbytes dat met de parameter length van de socket is opgegeven, waarna een tekenreeks wordt geretourneerd. | Socket | ||
Verwijdert een listener uit het object EventDispatcher. | EventDispatcher | ||
Stelt de beschikbaarheid van een dynamische eigenschap voor lusbewerkingen in. | Object | ||
Geeft de tekenreeksweergave van dit object weer, geformatteerd volgens de locatiespecifieke conventies. | Object | ||
Retourneert een tekenreeksrepresentatie van het opgegeven object. | Object | ||
Retourneert de primitieve waarde van het opgegeven object. | Object | ||
Controleert of een gebeurtenislistener is geregistreerd bij dit object EventDispatcher of een van de voorouders voor het opgegeven type gebeurtenis. | EventDispatcher | ||
Schrijft een Booleaanse waarde naar de socket. | Socket | ||
Schrijft een byte naar de socket. | Socket | ||
Schrijft een reeks bytes vanuit de opgegeven bytearray. | Socket | ||
Schrijft een IEEE 754 getal met drijvende komma en dubbele precisie naar de socket. | Socket | ||
Schrijft een IEEE 754-getal met drijvende komma en enkele precisie naar de socket. | Socket | ||
Schrijft een 32-bits geheel getal met teken naar de socket. | Socket | ||
Schrijft een multibyte-tekenreeks vanuit de bytestream met de opgegeven tekenset. | Socket | ||
Schrijft een object in AMF-indeling met serienummering naar de socket. | Socket | ||
Schrijft een 16-bits geheel getal naar de socket. | Socket | ||
Schrijft een 32-bits geheel getal zonder teken naar de socket. | Socket | ||
Schrijft de volgende gegevens naar de socket: een 16-bits geheel getal zonder teken dat de lengte in bytes van de opgegeven UTF-8-tekenreeks aangeeft, gevolgd door de tekenreeks zelf. | Socket | ||
Schrijft een UTF-8-tekenreeks naar de socket. | Socket |
Gebeurtenis | Overzicht | Gedefinieerd door | ||
---|---|---|---|---|
[uitgezonden gebeurtenis] Wordt verzonden wanneer Flash Player of de AIR-toepassing de besturingssysteemfocus krijgt en actief wordt. | EventDispatcher | |||
Wordt verzonden wanneer de server de socketverbinding sluit. | SecureSocket | |||
Wordt verzonden wanneer een netwerkverbinding tot stand is gebracht. | SecureSocket | |||
[uitgezonden gebeurtenis] Wordt verzonden wanneer Flash Player of de AIR-toepassing de systeemfocus verliest en inactief wordt. | EventDispatcher | |||
Wordt verzonden wanneer een invoer- of uitvoerfout optreedt die ertoe leidt dat een verzend- of ontvangstbewerking mislukt. | SecureSocket | |||
Wordt verzonden wanneer een socket gegevens verplaatst van de schrijfbuffer naar de netwerktransportlaag. | Socket | |||
Wordt verzonden wanneer een aanroep naar SecureSocket.connect() mislukt vanwege een beveiligingsbeperking. | SecureSocket | |||
Wordt verzonden wanneer een socket gegevens heeft ontvangen. | SecureSocket |
isSupported | eigenschap |
isSupported:Boolean
[alleen-lezen] Taalversie: | ActionScript 3.0 |
Runtimeversies: | Flash Player 11, AIR 2 |
Geeft aan of beveiligde sockets op het huidige systeem worden ondersteund.
Beveiligde sockets worden niet op alle platforms ondersteund. Controleer deze eigenschap voordat u een SecureSocket-instantie probeert te maken.
Implementatie
public static function get isSupported():Boolean
serverCertificate | eigenschap |
serverCertificate:X509Certificate
[alleen-lezen] Taalversie: | ActionScript 3.0 |
Runtimeversies: | Flash Player 11, AIR 3 |
Bewaart het X.509-certificaat dat van de server is verkregen nadat een veilige SSL/TLS-verbinding tot stand is gebracht. Als geen veilige verbinding tot stand wordt gebracht, wordt deze eigenschap ingesteld op null
. Deze functie wordt momenteel niet ondersteund op iOS. Daarom is de waarde bij iOS ingesteld op null
.
Zie RFC2459 voor meer informatie over X.509-certificaten.
Implementatie
public function get serverCertificate():X509Certificate
serverCertificateStatus | eigenschap |
serverCertificateStatus:String
[alleen-lezen] Taalversie: | ActionScript 3.0 |
Runtimeversies: | Flash Player 11, AIR 2 |
Retourneert de status van het servercertificaat.
De status is ingesteld op CertificateStatus.UNKNOWN
totdat de socket verbinding met een server probeert te maken. Na validatie is de status een van de strings die door de CertificateStatus-klasse wordt opgesomd. De verbinding slaagt alleen wanneer het certificaat geldig is en vertrouwd wordt. Na een gebeurtenis connect
is de waarde vanserverCertificateStatus
dus altijd trusted
.
Opmerking: Als het certificaat is gevalideerd of geweigerd, wordt de statuswaarde pas weer bijgewerkt na de volgende aanroep naar de methode connect()
. Door het aanroepen van close()
wordt de statuswaarde niet teruggezet naar "unknown".
Implementatie
public function get serverCertificateStatus():String
Verwante API-elementen
SecureSocket | () | Constructor |
public function SecureSocket()
Taalversie: | ActionScript 3.0 |
Runtimeversies: | Flash Player 11, AIR 2 |
Maakt een nieuw SecureSocket-object.
Controleer SecureSocket.isSupported
voordat u een SecureSocket-instantie probeert te maken. Als SSL 3.0- of TLS 1.0-sockets niet worden ondersteund, zal de runtime een IllegalOperationError weergeven.
Gegenereerde uitzondering
IllegalOperationError — Wanneer SSL-versie 3.0 (en hoger) of TLS-versie 1.0 (en hoger) niet wordt ondersteund.
| |
SecurityError — Lokale niet-vertrouwde SWF-bestanden kunnen niet communiceren met internet. U kunt dit probleem omzeilen door dit SWF-bestand opnieuw te classificeren als lokaal-met-netwerk of vertrouwd.
|
addBinaryChainBuildingCertificate | () | methode |
public function addBinaryChainBuildingCertificate(certificate:ByteArray, trusted:Boolean):void
Taalversie: | ActionScript 3.0 |
Runtimeversies: | Flash Player 11, AIR 3 |
Hiermee wordt een X.509-certificaat toegevoegd aan de lokale certificaatketen die door uw systeem wordt gebruikt voor validatie van het servercertificaat. Het is een tijdelijk certificaat dat gedurende de sessie geldig is.
De validatie van servercertificaten is afhankelijk van de vertrouwde opslagruimte van uw systeem voor het samenstellen en valideren van certificaatketens. Gebruik deze methode om programmatisch extra certificaatketens en vertrouwde ankers toe te voegen.
Op Mac OS wordt de keychain van het besturingssysteem standaard gebruikt tijdens het SSL/TLS-handshakeproces. Alle tussenliggende certificaten in de desbetreffende keychain worden opgenomen tijdens het samenstellen van de certificaatketen.
Het certificaat dat u met deze API toevoegt, dient een via DER gecodeerd X.509-certificaat te zijn. Als de parameter trusted
waar is, wordt het certificaat dat u met deze API toevoegt, beschouwd als een vertrouwd anker.
Zie RFC2459 voor meer informatie over X.509-certificaten.
Parameters
certificate:ByteArray — Een ByteArray-object met een DER-gecodeerd X.509 digitaal certificaat.
| |
trusted:Boolean — Stel dit object in op true om dit certificaat als vertrouwensanker aan te wijzen.
|
Gegenereerde uitzondering
ArgumentError — Als het certificaat niet kan worden toegevoegd.
|
connect | () | methode |
override public function connect(host:String, port:int):void
Taalversie: | ActionScript 3.0 |
Runtimeversies: | Flash Player 11, AIR 2 |
Verbindt de socket met de opgegeven host en poort met behulp van SSL of TLS.
Als u de methode SecureSocket.connect()
aanroept, probeert de socket een SSL/TLS-handshake uit te voeren met de server. Als de handshake slaagt, probeert de socket het servercertificaat te valideren. Als het certificaat geldig is en wordt vertrouwd, wordt de Secure Socket-verbinding tot stand gebracht en wordt de gebeurtenis connect
verzonden door de socket. Als de handshake mislukt of als het certificaat niet gevalideerd kan worden, verzendt de socket de gebeurtenis IOError
. U kunt het resultaat van de certificaatvalidatie controleren door de eigenschap serverCertificateStatus
te lezen nadat de gebeurtenis IOError
is verzonden. (Wanneer een gebeurtenis connect
wordt verzonden, is de certificaatstatus altijd ingesteld op trusted
.)
Wanneer de socket al verbinding heeft, wordt eerst de bestaande verbinding gesloten.
Parameters
host:String — De naam of het IP-adres waarmee de host verbinding maakt.
| |
port:int — Het poortnummer waarmee verbinding moet worden gemaakt.
|
Gebeurtenissen
connect: — Wordt verzonden wanneer een netwerkverbinding tot stand is gebracht.
| |
ioError: — Wordt verzonden wanneer een host is opgegeven en een invoer-/uitvoerfout optreedt die ertoe leidt dat de verbinding mislukt. Dit geldt ook voor SSL/TLS-handshakefouten en het niet succesvol valideren van het servercertificaat van de host.
| |
securityError: — Wordt verzonden als een aanroep van een Socket.connect() verbinding probeert te maken met een server zonder bestand met socketbeleid of met een server waarvan het beleidsbestand de aanroepende host geen toegang tot de opgegeven poort geeft. Zie "Website-bediening (beleidsbestanden)" in de Adobe ActionScript 3.0-ontwikkelaarsgids en het Flash Player Developer Center-onderwerp:Security voor meer informatie.
|
Gegenereerde uitzondering
IOError — Als u geen host opgeeft, kan geen verbinding tot stand worden gebracht.
| |
SecurityError — Als u een lagere socketpoort dan 0 of een hogere poort dan 65535 opgeeft.
|
close | Gebeurtenis |
flash.events.Event
eigenschap Event.type =
flash.events.Event.CLOSE
Taalversie: | ActionScript 3.0 |
Runtimeversies: | Flash Player 11, AIR 2 |
Wordt verzonden wanneer de server de socketverbinding sluit.
De gebeurtenis close
wordt alleen verzonden wanneer de server de verbinding sluit. De gebeurtenis wordt niet verzonden wanneer u de methode Socket.close()
aanroept.
Event.CLOSE
definieert de waarde van de eigenschap type
van een close
-gebeurtenisobject.
Deze gebeurtenis heeft de volgende eigenschappen:
Eigenschap | Waarde |
---|---|
bubbles | false |
cancelable | false ; er is geen standaardgedrag om te annuleren. |
currentTarget | Het object dat het gebeurtenisobject actief verwerkt met een gebeurtenislistener. |
target | Het object waarvan de verbinding is gesloten. |
connect | Gebeurtenis |
flash.events.Event
eigenschap Event.type =
flash.events.Event.CONNECT
Taalversie: | ActionScript 3.0 |
Runtimeversies: | Flash Player 11, AIR 2 |
Wordt verzonden wanneer een netwerkverbinding tot stand is gebracht.
De constanteEvent.CONNECT
definieert de waarde van de eigenschap type
van een connect
-gebeurtenisobject.
Deze gebeurtenis heeft de volgende eigenschappen:
Eigenschap | Waarde |
---|---|
bubbles | false |
cancelable | false ; er is geen standaardgedrag om te annuleren. |
currentTarget | Het object dat het gebeurtenisobject actief verwerkt met een gebeurtenislistener. |
target | Het object Socket of XMLSocket dat een netwerkverbinding tot stand heeft gebracht. |
ioError | Gebeurtenis |
flash.events.IOErrorEvent
eigenschap IOErrorEvent.type =
flash.events.IOErrorEvent.IO_ERROR
Taalversie: | ActionScript 3.0 |
Runtimeversies: | Flash Player 11, AIR 2 |
Wordt verzonden wanneer een invoer- of uitvoerfout optreedt die ertoe leidt dat een verzend- of ontvangstbewerking mislukt.
Wanneer een servercertificaat niet kan worden gevalideerd, is de verzonden foutgebeurtenis een IOError. In dat geval kunt u met de eigenschap serverCertificateStatus
bepalen wat de oorzaak van het probleem is.
type
van een gebeurtenisobject ioError
.
Deze gebeurtenis heeft de volgende eigenschappen:
Eigenschap | Waarde |
---|---|
bubbles | false |
cancelable | false ; er is geen standaardgedrag om te annuleren. |
currentTarget | Het object dat het gebeurtenisobject actief verwerkt met een gebeurtenislistener. |
errorID | Een referentienummer dat aan de specifieke fout is gekoppeld (alleen AIR). |
target | Het netwerkobject dat de invoer-/uitvoerfout ondervindt. |
text | Tekst die moet worden weergegeven als foutbericht. |
securityError | Gebeurtenis |
flash.events.SecurityErrorEvent
eigenschap SecurityErrorEvent.type =
flash.events.SecurityErrorEvent.SECURITY_ERROR
Taalversie: | ActionScript 3.0 |
Runtimeversies: | Flash Player 11, AIR 2 |
Wordt verzonden wanneer een aanroep naar SecureSocket.connect()
mislukt vanwege een beveiligingsbeperking.
Er wordt een beveiligingsfoutgebeurtenis verzonden wanneer code die in Flash Player of in AIR buiten de beveiligingssandbox van de toepassing wordt uitgevoerd, probeert verbinding te maken met een server in een ander domein of een lagere poort dan 1024 en de server geen beleidsbestand biedt die de verbinding toestaat. Code die in de AIR-toepassing wordt uitgevoerd, kan verbinding maken met een server in elk domein maken en met poorten lager dan 1024 zonder een beleidsbestand.
De constanteSecurityErrorEvent.SECURITY_ERROR
definieert de waarde van de eigenschap type
van een gebeurtenisobject securityError
.
Deze gebeurtenis heeft de volgende eigenschappen:
Eigenschap | Waarde |
---|---|
bubbles | false |
cancelable | false ; er is geen standaardgedrag om te annuleren. |
currentTarget | Het object dat het gebeurtenisobject actief verwerkt met een gebeurtenislistener. |
target | Het netwerkobject dat de beveiligingsfout rapporteert. |
text | Tekst die moet worden weergegeven als foutbericht. |
Verwante API-elementen
socketData | Gebeurtenis |
flash.events.ProgressEvent
eigenschap ProgressEvent.type =
flash.events.ProgressEvent.SOCKET_DATA
Taalversie: | ActionScript 3.0 |
Runtimeversies: | Flash Player 11, AIR 2 |
Wordt verzonden wanneer een socket gegevens heeft ontvangen. Gebeurtenissen van het type socketData
gebruiken de eigenschap ProgressEvent.bytesTotal
niet.
type
van een gebeurtenisobject socketData
.
Deze gebeurtenis heeft de volgende eigenschappen:
Eigenschap | Waarde |
---|---|
bubbles | false |
cancelable | false ; er is geen standaardgedrag om te annuleren. |
currentTarget | Het object dat actief de Event verwerkt. |
bytesLoaded | Het aantal items of bytes dat wordt geladen wanneer de listener de gebeurtenis verwerkt. |
bytesTotal | 0; deze eigenschap wordt niet gebruikt door gebeurtenisobjecten socketData . |
target | De socket die de voortgang rapporteert. |
package { import flash.display.Sprite; import flash.errors.IOError; import flash.events.Event; import flash.events.IOErrorEvent; import flash.net.SecureSocket; public class SecureSocketExample extends Sprite { private var secureSocket:SecureSocket = new SecureSocket(); public function SecureSocketExample() { secureSocket.addEventListener( Event.CONNECT, onConnect ) secureSocket.addEventListener( IOErrorEvent.IO_ERROR, onError ); try { secureSocket.connect( "208.77.188.166", 443 ); } catch ( error:Error ) { trace ( error.toString() ); } } private function onConnect( event:Event ):void { trace("Connected."); } private function onError( error:IOErrorEvent ):void { trace( error.text + ", " + secureSocket.serverCertificateStatus ); } } }
Wed Jun 13 2018, 11:42 AM Z