ActionScript® 3.0 Referenzhandbuch für die Adobe® Flash®-Plattform
Home  |  Liste der Pakete und Klassen ausblenden |  Pakete  |  Klassen  |  Neue Funktionen  |  Stichwortverzeichnis  |  Anhänge  |  Warum auf Englisch?
Filter: AIR 30.0 und früher, Flash Player 30.0 und früher, Flash Lite 4
Flex 4.6 und früher, Flash Pro CS6 und früher
Filter ausblenden
flash.system 

Security  - AS3

Paketex

Oberste Ebene
adobe.utils
air.desktop
air.net
air.update
air.update.events
coldfusion.air
coldfusion.air.errors
coldfusion.air.events
coldfusion.service
coldfusion.service.events
coldfusion.service.mxml
com.adobe.acm.solutions.authoring.domain.extensions
com.adobe.acm.solutions.ccr.domain.extensions
com.adobe.consulting.pst.vo
com.adobe.dct.component
com.adobe.dct.component.datadictionary
com.adobe.dct.component.datadictionaryElement
com.adobe.dct.component.dataElementsPanel
com.adobe.dct.component.toolbars
com.adobe.dct.event
com.adobe.dct.exp
com.adobe.dct.model
com.adobe.dct.service
com.adobe.dct.service.provider
com.adobe.dct.transfer
com.adobe.dct.util
com.adobe.dct.view
com.adobe.ep.taskmanagement.domain
com.adobe.ep.taskmanagement.event
com.adobe.ep.taskmanagement.filter
com.adobe.ep.taskmanagement.services
com.adobe.ep.taskmanagement.util
com.adobe.ep.ux.attachmentlist.component
com.adobe.ep.ux.attachmentlist.domain
com.adobe.ep.ux.attachmentlist.domain.events
com.adobe.ep.ux.attachmentlist.domain.renderers
com.adobe.ep.ux.attachmentlist.skin
com.adobe.ep.ux.attachmentlist.skin.renderers
com.adobe.ep.ux.content.event
com.adobe.ep.ux.content.factory
com.adobe.ep.ux.content.handlers
com.adobe.ep.ux.content.managers
com.adobe.ep.ux.content.model.asset
com.adobe.ep.ux.content.model.preview
com.adobe.ep.ux.content.model.relation
com.adobe.ep.ux.content.model.search
com.adobe.ep.ux.content.model.toolbar
com.adobe.ep.ux.content.search
com.adobe.ep.ux.content.services
com.adobe.ep.ux.content.services.load
com.adobe.ep.ux.content.services.permissions
com.adobe.ep.ux.content.services.preview
com.adobe.ep.ux.content.services.providers
com.adobe.ep.ux.content.services.query
com.adobe.ep.ux.content.services.relationships
com.adobe.ep.ux.content.services.search.lccontent
com.adobe.ep.ux.content.services.version
com.adobe.ep.ux.content.view
com.adobe.ep.ux.content.view.components.activate
com.adobe.ep.ux.content.view.components.grid
com.adobe.ep.ux.content.view.components.grid.hover
com.adobe.ep.ux.content.view.components.grid.hover.component
com.adobe.ep.ux.content.view.components.grid.renderers
com.adobe.ep.ux.content.view.components.relationships
com.adobe.ep.ux.content.view.components.review
com.adobe.ep.ux.content.view.components.search.renderers
com.adobe.ep.ux.content.view.components.searchpod
com.adobe.ep.ux.content.view.components.toolbar
com.adobe.ep.ux.content.view.components.toolbar.controlRenderers
com.adobe.ep.ux.content.view.components.version
com.adobe.ep.ux.documentsubmit.component
com.adobe.ep.ux.documentsubmit.domain
com.adobe.ep.ux.documentsubmit.skin
com.adobe.ep.ux.taskaction.component
com.adobe.ep.ux.taskaction.domain
com.adobe.ep.ux.taskaction.domain.events
com.adobe.ep.ux.taskaction.skin
com.adobe.ep.ux.taskdetails.component
com.adobe.ep.ux.taskdetails.domain
com.adobe.ep.ux.taskdetails.skin
com.adobe.ep.ux.tasklist.component
com.adobe.ep.ux.tasklist.domain
com.adobe.ep.ux.tasklist.skin
com.adobe.ep.ux.webdocumentviewer.domain
com.adobe.exm.expression
com.adobe.exm.expression.error
com.adobe.exm.expression.event
com.adobe.exm.expression.impl
com.adobe.fiber.runtime.lib
com.adobe.fiber.services
com.adobe.fiber.services.wrapper
com.adobe.fiber.styles
com.adobe.fiber.util
com.adobe.fiber.valueobjects
com.adobe.gravity.binding
com.adobe.gravity.context
com.adobe.gravity.flex.bundleloader
com.adobe.gravity.flex.progress
com.adobe.gravity.flex.serviceloader
com.adobe.gravity.framework
com.adobe.gravity.init
com.adobe.gravity.service.bundleloader
com.adobe.gravity.service.logging
com.adobe.gravity.service.manifest
com.adobe.gravity.service.progress
com.adobe.gravity.tracker
com.adobe.gravity.ui
com.adobe.gravity.utility
com.adobe.gravity.utility.async
com.adobe.gravity.utility.error
com.adobe.gravity.utility.events
com.adobe.gravity.utility.factory
com.adobe.gravity.utility.flex.async
com.adobe.gravity.utility.logging
com.adobe.gravity.utility.message
com.adobe.gravity.utility.sequence
com.adobe.gravity.utility.url
com.adobe.guides.control
com.adobe.guides.domain
com.adobe.guides.i18n
com.adobe.guides.spark.components.skins
com.adobe.guides.spark.components.skins.mx
com.adobe.guides.spark.headers.components
com.adobe.guides.spark.headers.skins
com.adobe.guides.spark.layouts.components
com.adobe.guides.spark.layouts.skins
com.adobe.guides.spark.navigators.components
com.adobe.guides.spark.navigators.renderers
com.adobe.guides.spark.navigators.skins
com.adobe.guides.spark.util
com.adobe.guides.spark.wrappers.components
com.adobe.guides.spark.wrappers.skins
com.adobe.guides.submit
com.adobe.icc.dc.domain
com.adobe.icc.dc.domain.factory
com.adobe.icc.editors.events
com.adobe.icc.editors.handlers
com.adobe.icc.editors.managers
com.adobe.icc.editors.model
com.adobe.icc.editors.model.config
com.adobe.icc.editors.model.el
com.adobe.icc.editors.model.el.operands
com.adobe.icc.editors.model.el.operators
com.adobe.icc.enum
com.adobe.icc.external.dc
com.adobe.icc.obj
com.adobe.icc.services
com.adobe.icc.services.category
com.adobe.icc.services.config
com.adobe.icc.services.download
com.adobe.icc.services.export
com.adobe.icc.services.external
com.adobe.icc.services.formbridge
com.adobe.icc.services.fragmentlayout
com.adobe.icc.services.layout
com.adobe.icc.services.letter
com.adobe.icc.services.locator
com.adobe.icc.services.module
com.adobe.icc.services.render
com.adobe.icc.services.submit
com.adobe.icc.services.user
com.adobe.icc.token
com.adobe.icc.vo
com.adobe.icc.vo.render
com.adobe.icomm.assetplacement.controller
com.adobe.icomm.assetplacement.controller.utils
com.adobe.icomm.assetplacement.data
com.adobe.icomm.assetplacement.model
com.adobe.livecycle.assetmanager.client
com.adobe.livecycle.assetmanager.client.event
com.adobe.livecycle.assetmanager.client.handler
com.adobe.livecycle.assetmanager.client.managers
com.adobe.livecycle.assetmanager.client.model
com.adobe.livecycle.assetmanager.client.model.cms
com.adobe.livecycle.assetmanager.client.service
com.adobe.livecycle.assetmanager.client.service.search
com.adobe.livecycle.assetmanager.client.service.search.cms
com.adobe.livecycle.assetmanager.client.utils
com.adobe.livecycle.content
com.adobe.livecycle.rca.model
com.adobe.livecycle.rca.model.constant
com.adobe.livecycle.rca.model.document
com.adobe.livecycle.rca.model.participant
com.adobe.livecycle.rca.model.reminder
com.adobe.livecycle.rca.model.stage
com.adobe.livecycle.rca.service
com.adobe.livecycle.rca.service.core
com.adobe.livecycle.rca.service.core.delegate
com.adobe.livecycle.rca.service.process
com.adobe.livecycle.rca.service.process.delegate
com.adobe.livecycle.rca.token
com.adobe.livecycle.ria.security.api
com.adobe.livecycle.ria.security.service
com.adobe.mosaic.layouts
com.adobe.mosaic.layouts.dragAndDrop
com.adobe.mosaic.layouts.interfaces
com.adobe.mosaic.mxml
com.adobe.mosaic.om.constants
com.adobe.mosaic.om.events
com.adobe.mosaic.om.impl
com.adobe.mosaic.om.interfaces
com.adobe.mosaic.skinning
com.adobe.mosaic.sparklib.editors
com.adobe.mosaic.sparklib.optionMenu
com.adobe.mosaic.sparklib.scrollableMenu
com.adobe.mosaic.sparklib.scrollableMenu.skins
com.adobe.mosaic.sparklib.tabLayout
com.adobe.mosaic.sparklib.tabLayout.events
com.adobe.mosaic.sparklib.tabLayout.layouts
com.adobe.mosaic.sparklib.tabLayout.skins
com.adobe.mosaic.sparklib.text
com.adobe.mosaic.sparklib.util
com.adobe.solutions.acm.authoring.presentation
com.adobe.solutions.acm.authoring.presentation.actionbar
com.adobe.solutions.acm.authoring.presentation.common
com.adobe.solutions.acm.authoring.presentation.events
com.adobe.solutions.acm.authoring.presentation.fragment
com.adobe.solutions.acm.authoring.presentation.letter
com.adobe.solutions.acm.authoring.presentation.letter.data
com.adobe.solutions.acm.authoring.presentation.preview
com.adobe.solutions.acm.authoring.presentation.rte
com.adobe.solutions.acm.ccr.presentation
com.adobe.solutions.acm.ccr.presentation.contentcapture
com.adobe.solutions.acm.ccr.presentation.contentcapture.events
com.adobe.solutions.acm.ccr.presentation.contentcapture.preview
com.adobe.solutions.acm.ccr.presentation.datacapture
com.adobe.solutions.acm.ccr.presentation.datacapture.renderers
com.adobe.solutions.acm.ccr.presentation.pdf
com.adobe.solutions.exm
com.adobe.solutions.exm.authoring
com.adobe.solutions.exm.authoring.components.controls
com.adobe.solutions.exm.authoring.components.toolbars
com.adobe.solutions.exm.authoring.domain
com.adobe.solutions.exm.authoring.domain.expression
com.adobe.solutions.exm.authoring.domain.impl
com.adobe.solutions.exm.authoring.domain.method
com.adobe.solutions.exm.authoring.domain.variable
com.adobe.solutions.exm.authoring.enum
com.adobe.solutions.exm.authoring.events
com.adobe.solutions.exm.authoring.model
com.adobe.solutions.exm.authoring.renderer
com.adobe.solutions.exm.authoring.view
com.adobe.solutions.exm.expression
com.adobe.solutions.exm.impl
com.adobe.solutions.exm.impl.method
com.adobe.solutions.exm.method
com.adobe.solutions.exm.mock
com.adobe.solutions.exm.mock.method
com.adobe.solutions.exm.runtime
com.adobe.solutions.exm.runtime.impl
com.adobe.solutions.exm.variable
com.adobe.solutions.prm.constant
com.adobe.solutions.prm.domain
com.adobe.solutions.prm.domain.factory
com.adobe.solutions.prm.domain.impl
com.adobe.solutions.prm.domain.manager
com.adobe.solutions.prm.presentation.asset
com.adobe.solutions.prm.presentation.constant
com.adobe.solutions.prm.presentation.document
com.adobe.solutions.prm.presentation.event
com.adobe.solutions.prm.presentation.file
com.adobe.solutions.prm.presentation.project
com.adobe.solutions.prm.presentation.team
com.adobe.solutions.prm.presentation.util
com.adobe.solutions.prm.service
com.adobe.solutions.prm.services.impl
com.adobe.solutions.prm.vo
com.adobe.solutions.rca.constant
com.adobe.solutions.rca.domain
com.adobe.solutions.rca.domain.common
com.adobe.solutions.rca.domain.factory
com.adobe.solutions.rca.domain.impl
com.adobe.solutions.rca.domain.impl.manager
com.adobe.solutions.rca.domain.manager
com.adobe.solutions.rca.presentation
com.adobe.solutions.rca.presentation.comment
com.adobe.solutions.rca.presentation.constant
com.adobe.solutions.rca.presentation.event
com.adobe.solutions.rca.presentation.gantt
com.adobe.solutions.rca.presentation.gantt.ruler
com.adobe.solutions.rca.presentation.template
com.adobe.solutions.rca.presentation.template.audit
com.adobe.solutions.rca.presentation.template.definition
com.adobe.solutions.rca.presentation.template.documents
com.adobe.solutions.rca.presentation.template.stages
com.adobe.solutions.rca.presentation.util
com.adobe.solutions.rca.service
com.adobe.solutions.rca.services.impl
com.adobe.solutions.rca.vo
com.adobe.solutions.rca.vo.um
com.adobe.viewsource
fl.accessibility
fl.containers
fl.controls
fl.controls.dataGridClasses
fl.controls.listClasses
fl.controls.progressBarClasses
fl.core
fl.data
fl.display
fl.events
fl.ik
fl.lang
fl.livepreview
fl.managers
fl.motion
fl.motion.easing
fl.rsl
fl.text
fl.transitions
fl.transitions.easing
fl.video
flash.accessibility
flash.concurrent
flash.crypto
flash.data
flash.desktop
flash.display
flash.display3D
flash.display3D.textures
flash.errors
flash.events
flash.external
flash.filesystem
flash.filters
flash.geom
flash.globalization
flash.html
flash.media
flash.net
flash.net.dns
flash.net.drm
flash.notifications
flash.permissions
flash.printing
flash.profiler
flash.sampler
flash.security
flash.sensors
flash.system
flash.text
flash.text.engine
flash.text.ime
flash.ui
flash.utils
flash.xml
flashx.textLayout
flashx.textLayout.compose
flashx.textLayout.container
flashx.textLayout.conversion
flashx.textLayout.edit
flashx.textLayout.elements
flashx.textLayout.events
flashx.textLayout.factory
flashx.textLayout.formats
flashx.textLayout.operations
flashx.textLayout.utils
flashx.undo
ga.controls
ga.layouts
ga.model
ga.uiComponents
ga.util
ga.views
ga.wrappers
lc.foundation
lc.foundation.domain
lc.foundation.events
lc.foundation.ui
lc.foundation.util
lc.preloader
lc.procmgmt
lc.procmgmt.commands
lc.procmgmt.domain
lc.procmgmt.events
lc.procmgmt.formbridge
lc.procmgmt.impl
lc.procmgmt.ui.attachments
lc.procmgmt.ui.controls
lc.procmgmt.ui.controls.card
lc.procmgmt.ui.controls.renderer
lc.procmgmt.ui.help
lc.procmgmt.ui.layout
lc.procmgmt.ui.presentationmodel
lc.procmgmt.ui.process
lc.procmgmt.ui.search
lc.procmgmt.ui.startpoint
lc.procmgmt.ui.task
lc.procmgmt.ui.task.form
lc.procmgmt.ui.task.form.commands
lc.procmgmt.ui.tracking
mx.accessibility
mx.automation
mx.automation.air
mx.automation.delegates
mx.automation.delegates.advancedDataGrid
mx.automation.delegates.charts
mx.automation.delegates.containers
mx.automation.delegates.controls
mx.automation.delegates.controls.dataGridClasses
mx.automation.delegates.controls.fileSystemClasses
mx.automation.delegates.core
mx.automation.delegates.flashflexkit
mx.automation.events
mx.binding
mx.binding.utils
mx.charts
mx.charts.chartClasses
mx.charts.effects
mx.charts.effects.effectClasses
mx.charts.events
mx.charts.renderers
mx.charts.series
mx.charts.series.items
mx.charts.series.renderData
mx.charts.styles
mx.collections
mx.collections.errors
mx.containers
mx.containers.accordionClasses
mx.containers.dividedBoxClasses
mx.containers.errors
mx.containers.utilityClasses
mx.controls
mx.controls.advancedDataGridClasses
mx.controls.dataGridClasses
mx.controls.listClasses
mx.controls.menuClasses
mx.controls.olapDataGridClasses
mx.controls.scrollClasses
mx.controls.sliderClasses
mx.controls.textClasses
mx.controls.treeClasses
mx.controls.videoClasses
mx.core
mx.core.windowClasses
mx.data
mx.data.crypto
mx.data.errors
mx.data.events
mx.data.messages
mx.data.mxml
mx.data.offline.errors
mx.data.utils
mx.effects
mx.effects.easing
mx.effects.effectClasses
mx.events
mx.filters
mx.flash
mx.formatters
mx.geom
mx.graphics
mx.graphics.codec
mx.graphics.shaderClasses
mx.logging
mx.logging.errors
mx.logging.targets
mx.managers
mx.messaging
mx.messaging.channels
mx.messaging.config
mx.messaging.errors
mx.messaging.events
mx.messaging.management
mx.messaging.messages
mx.modules
mx.netmon
mx.olap
mx.olap.aggregators
mx.preloaders
mx.printing
mx.resources
mx.rpc
mx.rpc.events
mx.rpc.http
mx.rpc.http.mxml
mx.rpc.livecycle
mx.rpc.mxml
mx.rpc.remoting
mx.rpc.remoting.mxml
mx.rpc.soap
mx.rpc.soap.mxml
mx.rpc.wsdl
mx.rpc.xml
mx.skins
mx.skins.halo
mx.skins.spark
mx.skins.wireframe
mx.skins.wireframe.windowChrome
mx.states
mx.styles
mx.utils
mx.validators
org.osmf.containers
org.osmf.display
org.osmf.elements
org.osmf.events
org.osmf.layout
org.osmf.logging
org.osmf.media
org.osmf.metadata
org.osmf.net
org.osmf.net.dvr
org.osmf.net.httpstreaming
org.osmf.net.metrics
org.osmf.net.qos
org.osmf.net.rtmpstreaming
org.osmf.net.rules
org.osmf.traits
org.osmf.utils
spark.accessibility
spark.automation.delegates
spark.automation.delegates.components
spark.automation.delegates.components.gridClasses
spark.automation.delegates.components.mediaClasses
spark.automation.delegates.components.supportClasses
spark.automation.delegates.skins.spark
spark.automation.events
spark.collections
spark.components
spark.components.calendarClasses
spark.components.gridClasses
spark.components.mediaClasses
spark.components.supportClasses
spark.components.windowClasses
spark.core
spark.effects
spark.effects.animation
spark.effects.easing
spark.effects.interpolation
spark.effects.supportClasses
spark.events
spark.filters
spark.formatters
spark.formatters.supportClasses
spark.globalization
spark.globalization.supportClasses
spark.layouts
spark.layouts.supportClasses
spark.managers
spark.modules
spark.preloaders
spark.primitives
spark.primitives.supportClasses
spark.skins
spark.skins.mobile
spark.skins.mobile.supportClasses
spark.skins.spark
spark.skins.spark.mediaClasses.fullScreen
spark.skins.spark.mediaClasses.normal
spark.skins.spark.windowChrome
spark.skins.wireframe
spark.skins.wireframe.mediaClasses
spark.skins.wireframe.mediaClasses.fullScreen
spark.transitions
spark.utils
spark.validators
spark.validators.supportClasses
xd.core.axm.enterprise.view.components
xd.core.axm.enterprise.view.skins
xd.core.axm.view.components
xd.core.axm.view.components.support

Sprachelemente

Globale Konstanten
Globale Funktionen
Operatoren
Anweisungen, Schlüsselwörter und Direktiven
Sondertypen

Anhänge

Neue Funktionen
Compiler-Fehler
Compiler-Warnungen
Laufzeitfehler
Migration zu ActionScript 3
Unterstützte Zeichensätze
Nur MXML-Tags
Motion-XML-Elemente
Timed Text-Tags
Liste veralteter Elemente
Konstanten für die Implementierung von Eingabehilfen
Verwendung der ActionScript-Beispiele
Rechtliche Hinweise
Paketflash.system
Klassepublic final class Security
VererbungSecurity Inheritance Object

Sprachversion: ActionScript 3.0
Laufzeitversionen: AIR 1.0, Flash Player 9, Flash Lite 4

Mit der Security-Klasse können Sie angeben, wie Inhalte in unterschiedlichen Domänen miteinander kommunizieren können.

Beispiele anzeigen



Öffentliche Eigenschaften
 EigenschaftDefiniert von
 Inheritedconstructor : Object
Ein Verweis auf das Klassenobjekt oder die Konstruktorfunktion für eine angegebene Objektinstanz.
Object
  exactSettings : Boolean
[statisch] Legt fest, wie in Flash Player oder AIR die für bestimmte Inhalteinstellungen, beispielsweise Berechtigungen für Kamera und Mikrofon, Speicheranteile oder Speicher für permanente gemeinsame Objekte, zu verwendende Domäne ausgewählt wird.
Security
  pageDomain : String
[statisch] [schreibgeschützt] Der Domänenteil der HTML-Seite, die die SWF-Datei enthält.
Security
  sandboxType : String
[statisch] [schreibgeschützt] Gibt den Typ der Sicherheitssandbox an, in der die aufrufende Datei verwendet wird.
Security
Öffentliche Methoden
 MethodeDefiniert von
  
[statisch] Lässt SWF-Dateien in den identifizierten Domänen auf Objekte und Variablen in der SWF-Datei zugreifen, die den allowDomain()-Aufruf enthalten.
Security
  
[statisch] Hiermit können SWF- und HTML-Dateien in den angegebenen Domänen auf Objekte und Variablen in der aufrufenden SWF-Datei zugreifen, die über das HTTPS-Protokoll gehostet wird.
Security
 Inherited
Gibt an, ob für ein Objekt eine bestimmte Eigenschaft definiert wurde.
Object
 Inherited
Gibt an, ob eine Instanz der Object-Klasse in der Prototypkette des Objekts vorhanden ist, das als Parameter angegeben wurde.
Object
  
[statisch] Sucht an dem durch den url-Parameter angegebenen Ort nach einer Richtliniendatei.
Security
 Inherited
Gibt an, ob die angegebene Eigenschaft vorhanden ist und durchlaufen werden kann.
Object
 Inherited
Legt die Verfügbarkeit einer dynamischen Eigenschaft für Schleifenoperationen fest.
Object
  
showSettings(panel:String = "default"):void
[statisch] Zeigt das Bedienfeld für die Sicherheitseinstellungen in Flash Player an.
Security
 Inherited
Gibt die Stringdarstellung dieses Objekts zurück, formatiert entsprechend den Konventionen des Gebietsschemas.
Object
 Inherited
Gibt das angegebene Objekt als String zurück.
Object
 Inherited
Gibt den Grundwert des angegebenen Objekts zurück.
Object
Öffentliche Konstanten
 KonstanteDefiniert von
  APPLICATION : String = "application"
[statisch] Die Datei wird in einer AIR-Anwendung ausgeführt und sie wurde mit dem Paket (der AIR-Datei) für diese Anwendung installiert.
Security
  LOCAL_TRUSTED : String = "localTrusted"
[statisch] Die Datei ist eine lokale Datei, die vom Benutzer über den Flash Player-Einstellungsmanager oder eine FlashPlayerTrust-Konfigurationsdatei als vertrauenswürdig eingestuft wurde.
Security
  LOCAL_WITH_FILE : String = "localWithFile"
[statisch] Die Datei ist eine lokale Datei, wurde vom Benutzer nicht als vertrauenswürdig einstuft, und es handelt sich nicht um eine SWF-Datei, die mit einem Netzwerkziel veröffentlicht wurde.
Security
  LOCAL_WITH_NETWORK : String = "localWithNetwork"
[statisch] Die Datei ist eine lokale Datei, wurde vom Benutzer nicht als vertrauenswürdig einstuft, und es handelt sich um eine SWF-Datei, die mit einem Netzwerkziel veröffentlicht wurde.
Security
  REMOTE : String = "remote"
[statisch] Die Datei stammt von einer Internet-URL und kann entsprechend den domänenbasierten Sandbox-Regeln verwendet werden.
Security
Eigenschaftendetails

exactSettings

Eigenschaft
exactSettings:Boolean

Sprachversion: ActionScript 3.0
Laufzeitversionen: AIR 1.0, Flash Player 9, Flash Lite 4

Legt fest, wie in Flash Player oder AIR die für bestimmte Inhalteinstellungen, beispielsweise Berechtigungen für Kamera und Mikrofon, Speicheranteile oder Speicher für permanente gemeinsame Objekte, zu verwendende Domäne ausgewählt wird. Um in der SWF-Datei die gleichen Einstellungen zu verwenden, die in Flash Player 6 verwendet wurden, setzen Sie exactSettings auf false.

In Flash Player 6 basiert die für diese Player-Einstellungen verwendete Domäne auf dem der Domäne der SWF-Datei nachgestellten Teil. Wenn die Domäne einer SWF-Datei mehr als zwei Segmente enthält, beispielsweise www.example.com, wird das erste Segment der Domäne („www“) entfernt und der restliche Teil der Domäne verwendet, d. h. example.com. In Flash Player 6 wird daher bei www.example.com und bei store.example.com die Domäne example.com als Domäne für diese Einstellungen verwendet. Genauso wird bei www.example.co.uk und store.example.co.uk die Domäne example.co.uk als Domäne für diese Einstellungen verwendet. In Flash Player 7 und späteren Versionen werden Player-Einstellungen in der Standardeinstellung entsprechend der exakten Domäne einer SWF-Datei ausgewählt. Beispiel: Eine SWF-Datei von www.example.com verwendet die Player-Einstellungen für www.example.com und eine SWF-Datei von store.example.com für store.example.com.

Wenn Security.exactSettings auf true gesetzt ist, verwendet Flash Player oder AIR exakte Domänen für Player-Einstellungen. Der Standardwert für exactSettings ist true. Wenn Sie für exactSettings einen anderen Wert als den Standardwert festlegen, tun Sie dies, bevor Ereignisse auftreten, bei denen Flash Player oder AIR Player-Einstellungen wählen muss (z. B. beim Verwenden einer Kamera oder eines Mikrofons oder beim Abrufen eines permanenten gemeinsamen Objekts).

Wenn Sie zuvor eine SWF-Datei in Version 6 veröffentlicht und daraus permanente gemeinsame Objekte erstellt haben und jetzt diese permanenten gemeinsamen Objekt aus der SWF-Datei, die Sie auf Version 7 oder höher portiert haben, abrufen müssen, setzen Sie Security.exactSettings auf false, bevor Sie SharedObject.getLocal() aufrufen.



Implementierung
    public static function get exactSettings():Boolean
    public static function set exactSettings(value:Boolean):void

Auslöser
SecurityError — Der Wert von exactSettings wurde in Flash Player oder AIR bereits mindestens einmal bei einer Entscheidung hinsichtlich der Player-Einstellungen verwendet.

pageDomain

Eigenschaft 
pageDomain:String  [schreibgeschützt]

Sprachversion: ActionScript 3.0
Laufzeitversionen: Flash Player 10.3, AIR 2.7

Der Domänenteil der HTML-Seite, die die SWF-Datei enthält.

Aus Sicherheitsgründen gibt die Methode nicht die vollständige URL zurück, sondern nur die Seitendomäne, zum Beispiel http://www.example.com. Wenn diese SWF-Datei nicht in einer HTML-Seite enthalten ist oder aus Sicherheitsgründen nicht auf die Seitendomäne zugreifen kann, gibt diese Eigenschaft den String undefined zurück.



Implementierung
    public static function get pageDomain():String

sandboxType

Eigenschaft 
sandboxType:String  [schreibgeschützt]

Sprachversion: ActionScript 3.0
Laufzeitversionen: AIR 1.0, Flash Player 9, Flash Lite 4

Gibt den Typ der Sicherheitssandbox an, in der die aufrufende Datei verwendet wird.

Security.sandboxType weist einen der folgenden Werte auf:

  • remote (Security.REMOTE): Diese Datei stammt von einer Internet-URL und kann entsprechend den domänenbasierten Sandbox-Regeln verwendet werden.
  • localWithFile (Security.LOCAL_WITH_FILE): Diese Datei ist eine lokale Datei, wurde vom Benutzer nicht als vertrauenswürdig einstuft, und es handelt sich nicht um eine SWF-Datei, die mit einem Netzwerkziel veröffentlicht wurde. Die Datei kann lokale Datenquellen lesen, jedoch keine Verbindung mit dem Internet herstellen.
  • localWithNetwork (Security.LOCAL_WITH_NETWORK): Diese SWF-Datei ist eine lokale Datei, die für den Benutzer nicht vertrauenswürdig ist und für die Verwendung im Netzwerk veröffentlicht wurde. Die SWF-Datei kann eine Verbindung mit dem Internet herstellen, jedoch keine lokalen Datenquellen lesen.
  • localTrusted (Security.LOCAL_TRUSTED): Diese Datei ist eine lokale Datei, die für den Benutzer über den Flash Player-Einstellungsmanager oder eine FlashPlayerTrust-Konfigurationsdatei als vertrauenswürdig gekennzeichnet wurde. Die Datei kann lokale Datenquellen lesen und eine Verbindung mit dem Internet herstellen.
  • application (Security.APPLICATION): Die Datei wird in einer AIR-Anwendung ausgeführt, und sie wurde mit dem Paket (der AIR-Datei) für diese Anwendung installiert. Standardmäßig können Dateien in der Sandbox der AIR-Anwendung Cross-Skripting für jede Datei in jeder Domäne durchführen (während Dateien außerhalb der AIR-Anwendung u. U. kein Cross-Skripting für die AIR-Datei durchführen dürfen). Standardmäßig können Dateien in der Sandbox der AIR-Anwendung Inhalte und Daten aus einer beliebigen Domäne laden.

Weitere Informationen zum Thema Sicherheit finden Sie im Flash Player Developer Center im Abschnitt Sicherheit.



Implementierung
    public static function get sandboxType():String

Verwandte API-Elemente

Methodendetails

allowDomain

()Methode
public static function allowDomain(... domains):void

Sprachversion: ActionScript 3.0
Laufzeitversionen: AIR 1.0, Flash Player 9, Flash Lite 4

Lässt SWF-Dateien in den identifizierten Domänen auf Objekte und Variablen in der SWF-Datei zugreifen, die den allowDomain()-Aufruf enthalten.

Hinweis: Der Aufruf dieser Methode vom Code in der Sandbox der AIR-Anwendung verursacht eine SecurityError-Ausnahme. Inhalt außerhalb der Sicherheitsdomäne der Anwendung kann kein direktes Cross-Scripting für Inhalte in der Anwendungssandbox ausführen. Allerdings kann Inhalt außerhalb der Anwendungssandbox über eine Sandbox-Brücke mit Inhalt in der Sicherheitssandbox der Anwendung kommunizieren.

Wenn zwei SWF-Dateien von derselben Domäne aus bereitgestellt werden, z. B. von http://mysite.com/swfA.swf und http://mysite.com/swfB.swf, kann swfA.swf Variablen, Objekte, Eigenschaften, Methoden usw. in swfB.swf untersuchen und ändern, und swfB.swf kann dasselbe bei swfA.swf tun. Dies wird als Skripterstellung über mehrere Filme oder Cross-Scripting bezeichnet.

Wenn zwei SWF-Dateien über verschiedene Domänen bereitgestellt werden, beispielsweise http://siteA.com/swfA.swf und http://siteB.com/siteB.swf, kann swfA.swf in Flash Player keine Skripterstellung von swfB.swf durchführen und umgekehrt. Eine SWF-Datei erteilt SWF-Dateien von anderen Domänen Berechtigungen durch Aufrufen von Security.allowDomain(). Dies wird als Cross-Domain-Scripting bezeichnet. Durch Aufrufen von Security.allowDomain("siteA.com") erteilt siteB.swf der Datei siteA.swf die Berechtigung zur Skripterstellung.

In domänenübergreifenden Situationen ist es wichtig, die betreffenden beiden Seiten klar zu trennen. Im Folgenden wird die Seite, die das Cross-Scripting durchführt, als zugreifende Seite (in der Regel die zugreifende SWF-Datei) und die andere Seite als Seite, auf die zugegriffen wird (in der Regel die SWF-Datei, auf die zugegriffen wird), bezeichnet. Wenn siteA.swf die Skripterstellung von siteB.swf durchführt, handelt es sich bei siteA.swf um die zugreifende Seite und bei siteB.swf um die Seite, auf die zugegriffen wird.

Diagramm zu Cross-Domain-Scripting

Mit allowDomain() hergestellte Cross-Domain-Berechtigungen sind asymmetrisch. Im vorherigen Beispiel kann siteA.swf die Skripterstellung von siteB.swf durchführen, siteB.swf jedoch keine Skripterstellung von siteA.swf, da siteA.swf nicht allowDomain() aufgerufen hat, um SWF-Dateien auf siteB.com die Berechtigung zur Skripterstellung zu erteilen. Sie können jedoch symmetrische Berechtigungen einrichten, indem Sie allowDomain() aus beiden SWF-Dateien aufrufen.

Flash Player schützt SWF-Dateien nicht nur vor Cross-Domain-Scripting durch andere SWF-Dateien, sondern auch vor Cross-Domain-Scripting durch HTML-Dateien. HTML-für-SWF-Skripterstellung kann bei älteren Browserfunktionen wie z. B. SetVariable oder bei Callbacks über ExternalInterface.addCallback() auftreten. Bei domänenübergreifender HTML-für-SWF-Skripterstellung muss die SWF-Datei, auf die zugegriffen wird, allowDomain() genauso aufrufen, als ob es sich bei der zugreifenden Seite um eine SWF-Datei handelt, andernfalls schlägt der Vorgang fehl.

Die Angabe einer IP-Adresse als Argument für allowDomain() gestattet keinen Zugriff durch alle zugreifenden Seiten, die von der angegebenen IP-Adresse stammen. Stattdessen erhält hierdurch nur eine Seite Zugriff, die in der URL die angegebene IP-Adresse und nicht den Domänennamen enthält, der dieser IP-Adresse zugeordnet ist.

Versionsspezifische Unterschiede

Die domänenübergreifenden Sicherheitsregeln von Flash Player wurden von Version zu Version weiterentwickelt. Die Unterschiede sind in der folgenden Tabelle zusammengefasst.

Aktuellste am Cross-Scripting beteiligte SWF-VersionallowDomain() erforderlich?allowInsecureDomain() erforderlich?Welche SWF-Datei muss allowDomain() oder allowInsecureDomain() aufrufen?Was kann in allowDomain() bzw. allowInsecureDomain() angegeben werden?
5 oder frühere VersionNeinNeinn. zutr.n. zutr.
6Ja, wenn übergeordnete Domänen nicht übereinstimmen.NeinDie SWF-Datei, auf die zugegriffen wird, oder jede SWF-Datei mit der gleichen Superdomäne wie die SWF-Datei, auf die zugegriffen wird.
  • Textbasierte Domäne (mysite.com)
  • IP-Adresse (192.168.1.1)
7Ja, wenn Domänen nicht exakt übereinstimmen.Ja, wenn Zugriff von HTTP auf HTTPS stattfindet (auch wenn die Domänen exakt übereinstimmen)Die SWF-Datei, auf die zugegriffen wird, oder jede SWF-Datei mit der gleichen Domäne wie die SWF-Datei, auf die zugegriffen wird.
  • Textbasierte Domäne (mysite.com)
  • IP-Adresse (192.168.1.1)
8 oder spätere VersionJa, wenn Domänen nicht exakt übereinstimmen.Ja, wenn Zugriff von HTTP auf HTTPS stattfindet (auch wenn die Domänen exakt übereinstimmen)SWF-Datei, auf die zugegriffen wird
  • Textbasierte Domäne (mysite.com)
  • IP-Adresse (192.168.1.1)
  • Platzhalter (*)

Die Versionen, die das Verhalten von Flash Player steuern, sind SWF-Versionen (Veröffentlichungsversionen einer SWF), nicht die Version von Flash Player selbst. Beispiel: Wenn Flash Player 8 eine SWF wiedergibt, die für Version 7 veröffentlicht wurde, wendet Flash Player das Verhalten von Version 7 an. Hierdurch wird sichergestellt, dass Upgrades des Players keinen Einfluss auf das Verhalten von Security.allowDomain() in bereitgestellten SWF-Dateien haben.

Die Spalte „Version“ in der vorherigen Tabelle gibt jeweils die neueste SWF-Version an, die an einem Cross-Scripting-Vorgang beteiligt ist. Flash Player bestimmt das Verhalten entweder aufgrund der Version der zugreifenden SWF-Datei oder der Version der SWF-Datei, auf die zugegriffen wird, je nachdem, welche der beiden Versionen neuer ist.

Die folgenden Absätze enthalten weitere Informationen zu den Sicherheitsänderungen in Flash Player mit Bezug auf Security.allowDomain().

Version 5. Beim Cross-Domain-Scripting liegen keine Beschränkungen vor.

Version 6. Einführung der Cross-Domain-Scripting-Sicherheit. Standardmäßig verbietet Flash Player das Cross-Domain-Scripting. Mit Security.allowDomain() kann es jedoch zugelassen werden. Um festzustellen, ob sich zwei Dateien in derselben Domäne befinden, verwendet Flash Player die Superdomäne der jeweiligen Datei. Diese entspricht exakt dem Hostnamen aus der URL der Datei, minus dem ersten Segment, bis zu einem Minimum von zwei Segmenten. Beispiel: Die Superdomäne www.mysite.com lautet einfach mysite.com. In diesem Fall könnten SWF-Dateien sowohl von www.mysite.com als auch von store.mysite.com Skripten füreinander erstellen, ohne Security.allowDomain() aufzurufen.

Version 7. Superdomänen-Übereinstimmung wird durch exakte Domänenübereinstimmung ersetzt. Zwei Dateien haben aufeinander nur dann Skriptzugriff, wenn die Hostnamen in ihren URLs identisch sind. Andernfalls ist ein Aufruf von Security.allowDomain() erforderlich. In der Standardeinstellung haben Dateien, die aus Nicht-HTTPS-URLs geladen werden, keinen Skriptzugriff mehr auf Dateien, die aus HTTPS-URLs geladen werden, auch wenn diese Dateien aus exakt derselben Domäne geladen werden. Diese Einschränkung trägt zum Schutz von HTTPS-Dateien bei, da eine Nicht-HTTPS-Datei beim Herunterladen geändert werden kann. Eine absichtlich geänderte Nicht-HTTPS-Datei kann eine HTTPS-Datei beschädigen, die ansonsten gegen Aktionen dieser Art geschützt wäre. Mit Security.allowInsecureDomain() können HTTPS-SWF-Dateien, auf die zugegriffen wird, diese Einschränkung bei Bedarf aufheben. Von der Verwendung von Security.allowInsecureDomain() wird jedoch abgeraten.

Version 8. Änderungen in zwei wichtigen Bereichen:

  • Durch Aufrufen von Security.allowDomain() sind Cross-Scripting-Vorgänge nun nur noch dann möglich, wenn die SWF-Datei, auf die zugegriffen wird, die Datei ist, die Security.allowDomain() aufgerufen hat. Mit anderen Worten: Eine SWF-Datei, die Security.allowDomain() aufruft, gibt nun nur den Zugriff auf sich selbst frei. In früheren Versionen ermöglichte der Aufruf von Security.allowDomain() Cross-Scripting-Vorgänge, bei denen die SWF-Datei, auf die zugegriffen wurde, jede SWF-Datei in der Domäne der SWF-Datei sein konnte, die Security.allowDomain() aufgerufen hat. Durch den Aufruf von Security.allowDomain() wurde bisher die gesamte Domäne der aufrufenden SWF-Datei freigegeben.
  • Für Security.allowDomain("*") und Security.allowInsecureDomain("*") werden nun Werte mit Platzhalterzeichen unterstützt. Der Platzhalter (*) ermöglicht Cross-Scripting-Vorgänge, bei denen die zugreifende Datei jede beliebige Datei aus einer beliebigen Quelle sein kann. Der Platzhalter ist gewissermaßen eine globale Berechtigung. Berechtigungen durch Platzhalter sind zum Aktivieren bestimmter Vorgänge unter den Sicherheitsregeln für lokale Dateien erforderlich. Insbesondere bei einer lokalen SWF-Datei mit Berechtigung für den Netzwerkzugriff zum Erstellen von Skripten für eine SWF-Datei im Internet muss die Internet-SWF-Datei, auf die zugegriffen wird, die Security.allowDomain("*")-Methode aufrufen, um der Tatsache Rechnung zu tragen, dass der Ursprung einer lokalen SWF-Datei unbekannt ist. (Wenn die Internet-SWF-Datei von einer HTTPS-URL geladen wird, muss die Internet-SWF-Datei stattdessen die Security.allowInsecureDomain("*")-Methode aufrufen.)

Von Zeit zu Zeit stellt sich Ihnen folgende Situation: Sie laden eine untergeordnete SWF-Datei aus einer anderen Domäne und möchten dieser das Scripting für die übergeordnete SWF-Datei ermöglichen, Ihnen ist jedoch die endgültige Domäne der untergeordneten SWF-Datei nicht bekannt. Dies ist beispielsweise der Fall, wenn Sie Weiterleitungen mit Lastausgleich oder Server von Dritten verwenden.

Sie können dann die url-Eigenschaft des URLRequest-Objekts verwenden, das für Loader.load() übergeben wird. Wenn Sie beispielsweise eine untergeordnete SWF-Datei in einer übergeordneten SWF-Datei laden, können Sie auf die contentLoaderInfo-Eigenschaft des Loader-Objekts für die übergeordnete SWF-Datei zugreifen:

Security.allowDomain(loader.contentLoaderInfo.url)

Warten Sie, bis der Ladevorgang der untergeordneten SWF-Datei gestartet wird, um den korrekten Wert der url-Eigenschaft abrufen zu können. Über das progress-Ereignis können Sie bestimmen, wann der Ladevorgang der untergeordneten SWF-Datei gestartet wurde.

Es kann auch die entgegengesetzte Situation auftreten: Angenommen, Sie haben eine untergeordnete SWF-Datei erstellt, die das Scripting durch die übergeordnete SWF-Datei ermöglichen soll, der jedoch die Domäne der übergeordneten SWF-Datei nicht bekannt ist. In diesem Fall können Sie auf die loaderInfo-Eigenschaft des Anzeigeobjekts zugreifen, bei dem es sich um das Stammobjekt der SWF-Datei handelt. Rufen Sie Security.allowDomain(this.root.loaderInfo.loaderURL) in der untergeordneten SWF-Datei auf. Sie müssen nicht warten, bis die übergeordnete SWF-Datei geladen wurde, da der Ladevorgang der übergeordneten Datei bereits abgeschlossen ist, wenn der Ladevorgang für die untergeordnete SWF-Datei erfolgt.

Wenn Sie eine Datei für Flash Player 8 oder eine spätere Version veröffentlichen, können Sie in diesen Fällen auch Security.allowDomain("*") aufrufen. Dies ist jedoch mitunter gefährlich, da hierdurch die aufrufende SWF-Datei für den Zugriff durch jede andere SWF-Datei der Domäne geöffnet wird. In der Regel ist es sicherer, die Eigenschaft _url zu verwenden.

Weitere Informationen zum Thema Sicherheit finden Sie im Flash Player Developer Center im Abschnitt Sicherheit.

Parameter

... domains — Ein oder mehrere Strings bzw. URLRequest-Objekte zur Bezeichnung der Domänen, über die Sie den Zugriff gewähren möchten. Sie können die Sonderdomäne „*“ angeben, um den Zugriff über alle Domänen zu ermöglichen.

In Flash Professional kann nur durch Angabe von „*“ der Zugriff auf nicht lokale SWF-Dateien über lokale SWF-Dateien ermöglicht werden, die unter Verwendung von „Nur auf Netzwerk zugreifen“ für die Option „Sicherheit bei lokaler Wiedergabe“ im Flash-Authoringtool veröffentlicht wurden.

Hinweis: Der Platzhalterwert funktioniert nicht für Subdomänen. Sie können zum Beispiel nicht *.foo.com für den domains-Parameter verwenden. Sie können zwar eine Subdomäne mit einem Platzhalterwert für eine domänenübergreifende Richtliniendatei angeben (wie in *.foo.com), es ist jedoch nicht möglich, einen Platzhalterwert auf diese Weise für die allowDomain()-Methode zu verwenden.


Auslöser
SecurityError — Wenn diese Methode von Code in der Sicherheitssandbox der AIR-Anwendung aufgerufen wird, wird ein SecurityError-Ausnahmefehler zurückgegeben. Inhalt außerhalb der Sicherheitssandbox der Anwendung kann kein Cross-Scripting für Inhalte in der Sicherheitssandbox der Anwendung ausführen.

Verwandte API-Elemente

allowInsecureDomain

()Methode 
public static function allowInsecureDomain(... domains):void

Sprachversion: ActionScript 3.0
Laufzeitversionen: AIR 1.0, Flash Player 9, Flash Lite 4

Hiermit können SWF- und HTML-Dateien in den angegebenen Domänen auf Objekte und Variablen in der aufrufenden SWF-Datei zugreifen, die über das HTTPS-Protokoll gehostet wird.

Flash Player stellt allowInsecureDomain() zur Verfügung, um die Flexibilität zu maximieren, aber das Aufrufen dieser Methode wird nicht empfohlen. Beim Bereitstellen einer Datei über HTTPS sind einige Schutzvorkehrungen für Sie und die Benutzer aktiv. Durch Aufrufen von allowInsecureDomain wird eine dieser Schutzvorkehrungen geschwächt.

Hinweis: Der Aufruf dieser Methode vom Code in der Sandbox der AIR-Anwendung verursacht eine SecurityError-Ausnahme. Inhalt außerhalb der Sicherheitsdomäne der Anwendung kann kein direktes Cross-Scripting für Inhalte in der Anwendungssandbox ausführen. Allerdings kann Inhalt außerhalb der Anwendungssandbox über eine Sandbox-Brücke mit Inhalt in der Sicherheitssandbox der Anwendung kommunizieren.

Diese Methode funktioniert genauso wie Security.allowDomain(), erlaubt jedoch zusätzlich Operationen, bei denen die zugreifende Seite mit einem Nicht-HTTPS-Protokoll und die Seite, auf die zugegriffen wird, mit HTTPS geladen werden. In Flash Player ab Version 7 erhalten Nicht-HTTPS-Dateien keinen Skriptzugriff auf HTTPS-Dateien. Die allowInsecureDomain()-Methode hebt diese Einschränkung auf, wenn sie von der HTTPS-SWF verwendet wird, auf die zugegriffen wird.

Verwenden Sie die allowInsecureDomain()-Methode nur, um den Skriptzugriff durch Nicht-HTTPS-Dateien auf HTTPS-Dateien zu ermöglichen. Verwenden Sie diese Methode zum Ermöglichen der Skripterstellung, wenn die zugreifende Nicht-HTTPS-Datei und die HTTPS-Datei, auf die zugegriffen wird, von derselben Domäne aus bereitgestellt werden, beispielsweise, wenn eine SWF-Datei auf http://mysite.com Skripten für https://mysite.com erstellen soll. Verwenden Sie die Methode nicht, um eine Skripterstellung zwischen Nicht-HTTPS-Dateien, zwischen HTTPS-Dateien oder seitens HTTPS-Dateien bei Nicht-HTTPS-Dateien zu ermöglichen. Für diese Fälle sollten Sie die allowDomain()-Methode verwenden.

Das folgende Szenario verdeutlicht, wie allowInsecureDomain() bei unsachgemäßer Anwendung die Sicherheit gefährden kann.

Beachten Sie, dass das folgende Beispiel nur ein mögliches Szenario darstellt. Es soll lediglich die Problematik von allowInsecureDomain() anhand eines realistischen Beispiels für Cross-Scripting verdeutlichen. Es deckt jedoch nicht alle Probleme bezüglich der Sicherheitsarchitektur ab und sollte nur als Hintergrundinformation betrachtet werden. Im Flash Player Developer Center stehen umfangreiche Informationen zum Thema Flash Player und Sicherheit zur Verfügung. Weitere Informationen finden Sie im Flash Player Developer Center im Abschnitt Sicherheit.

Angenommen, Sie möchten eine E-Commerce-Site erstellen, die aus zwei Komponenten besteht: einem Katalog, der nicht sicher zu sein braucht, da er nur öffentliche Informationen enthält, und einer Einkaufswagen-/Bezahlkomponente, die sicher sein muss, um finanzspezifische und persönliche Daten der Benutzer zu schützen. Der Katalog soll von http://mysite.com/catalog.swf aus bereitgestellt werden, der Einkaufswagen von https://mysite.com/cart.swf. Eine Anforderung an die Site besteht darin, dass kein Dritter die Kreditkartennummern Ihrer Benutzer ausspionieren kann, indem er eine Schwachstelle in der Sicherheitsarchitektur nutzt.

Stellen Sie sich vor, dass sich ein Angreifer zwischen Ihren Server und Ihre Benutzer platziert, um zu versuchen, die Kreditkartennummern abzufangen, die die Benutzer in der Einkaufswagen-Anwendung eingeben. Ein solcher Angreifer kann beispielsweise ein skrupelloser Internet-Dienstanbieter (ISP) sein, der von einem Ihrer Benutzer verwendet wird, oder ein böswilliger Administrator am Arbeitsplatz des Benutzers – im Grunde jeder, der die Fähigkeit besitzt, Netzwerkpakete einzusehen oder zu ändern, die über das öffentliche Internet zwischen Ihren Benutzern und Ihren Servern übertragen werden. Diese Situation ist nicht ungewöhnlich.

Wenn cart.swf die Kreditkartendaten mittels HTTPS an Ihre Server überträgt, kann der Angreifer diese Informationen nicht direkt aus den Netzwerkpaketen stehlen, da es sich um eine verschlüsselte Übertragung handelt. Er kann jedoch eine andere Technik anwenden: den Inhalt einer Ihrer SWF-Dateien ändern, während diese dem Benutzer bereitgestellt wird, d. h. die SWF-Datei durch eine andere Version ersetzen, die die Benutzerdaten an einen anderen vom Angreifer betriebenen Server überträgt.

Das HTTPS-Protokoll verhindert u. a., dass eine solche Änderung durchgeführt wird, da HTTPS-Übertragungen nicht nur verschlüsselt, sondern auch manipulationssicher sind. Wenn ein Angreifer ein Paket ändert, erkennt die empfangende Seite diese Änderung und verwirft das Paket. In diesem Fall kann der Angreifer also die Datei cart.swf nicht ändern, da die Übertragung über HTTPS erfolgt.

Doch nun möchten Sie, dass in der über HTTP bereitgestellten Datei catalog.swf Artikel mittels Schaltflächen dem Einkaufswagen in cart.swf hinzugefügt werden können, der seinerseits über HTTPS bereitgestellt wird. Dazu ruft cart.swf die allowInsecureDomain()-Methode auf, über die der Katalog (catalog.swf) ein Skript für cart.swf erstellen kann. Diese Aktion hat eine nicht beabsichtigte Folge: Der Angreifer kann nun bereits Änderungen an der Datei catalog.swf vornehmen, während der Benutzer sie herunterlädt, da sie mittels HTTP übertragen wird und somit nicht manipulationssicher ist. Die geänderte catalog.swf des Angreifers kann nun ein Skript für cart.swf erstellen, da cart.swf einen Aufruf der Methode allowInsecureDomain() enthält. Die geänderte Datei catalog.swf kann mithilfe von ActionScript auf die Variablen in cart.swf zugreifen und somit die Kreditkartendaten und andere vertrauliche Informationen des Benutzers lesen. Die geänderte catalog.swf kann diese Daten dann an den Server des Angreifers senden.

Ein solcher Missbrauch ist natürlich nicht erwünscht, Sie möchten dennoch, dass Cross-Scripting zwischen den beiden SWF-Dateien Ihrer Site möglich ist. Im Folgenden sind zwei Möglichkeiten aufgeführt, wie Sie diese hypothetische E-Commerce-Site so umbauen können, dass allowInsecureDomain() verhindert wird:

  • Bereitstellen aller SWF-Dateien der Anwendung über HTTPS: Dies ist die bei weitem einfachste und zuverlässigste Lösung. Im genannten Beispiel würden Sie sowohl catalog.swf als auch cart.swf über HTTPS übertragen. Eventuell bemerken Sie ein etwas höheres Datenverkehrsaufkommen und eine etwas stärkere CPU-Auslastung des Servers, wenn Sie eine Datei wie catalog.swf von HTTP auf HTTPS umstellen, und für Ihre Benutzer kommt es eventuell zu etwas längeren Anwendungsladezeiten. Um die Auswirkung dieser Umstellung zu testen, sollten Sie mit reellen Servern experimentieren. Normalerweise liegt die Datenverkehrserhöhung in einem Bereich von 10 bis 20 Prozent. Manchmal ist auch gar keine Erhöhung feststellbar. In der Regel können Sie die Ergebnisse mithilfe von HTTPS-Beschleunigungshardware oder -software weiter optimieren. Ein entscheidender Vorteil der Bereitstellung aller kooperierenden SWF-Dateien über HTTPS besteht darin, dass Sie eine HTTPS-URL als Haupt-URL im Browser des Benutzers verwenden können, ohne dass der Browser Warnmeldungen bezüglich gemischtem Inhalt ausgibt. Darüber hinaus wird dem Benutzer das Schlosssymbol des Browsers als ihm bekanntes und vertrauenswürdiges Zeichen für Sicherheit angezeigt.
  • Verwenden des HTTPS-auf-HTTP-Skriptzugriffs anstelle des HTTP-auf-HTTPS-Skriptzugriffs: Im genannten Beispiel könnten Sie den Inhalt des Einkaufswagens eines Benutzers in catalog.swf speichern, während cart.swf nur für das Bezahlen zuständig ist. Beim Auschecken kann die Datei cart.swf den Inhalt des Einkaufwagens aus ActionScript-Variablen der Datei catalog.swf abrufen. Die Beschränkung auf HTTP-zu-HTTPS-Skripten ist asymmetrisch. Obwohl eine über HTTP-übermittelte catalog.swf-Datei nicht sicher für Skript-Operationen in einer über HTTPS übermittelten cart.swf-Datei freigegeben werden kann, kann die HTTPS-cart.swf-Datei Änderungen in der HTTP-catalog.swf-Datei vornehmen. Dieser Ansatz ist feiner als der reine HTTPS-Ansatz. Achten Sie jedoch darauf, nicht allen per HTTP übermittelten SWF-Dateien zu vertrauen, da diese manipuliert werden können. Wenn beispielsweise cart.swf die ActionScript-Variable abruft, die den Inhalt des Einkaufswagens beschreibt, kann der ActionScript-Code in cart.swf nicht darauf vertrauen, dass der Wert dieser Variable im erwarteten Format vorliegt. Sie müssen deshalb darauf achten, dass der Inhalt des Einkaufswagens keine ungültigen Daten enthält, die cart.swf zu einer unerwünschten Aktion veranlassen könnte. Sie müssen auch das Risiko einkalkulieren, dass ein Angreifer durch Ändern von catalog.swf zwar gültige, aber inkorrekte Daten an cart.swf übermitteln könnte. So könnte er z. B. Artikel in den Einkaufswagen des Benutzers schmuggeln. Beim üblichen Bezahlvorgang wird das Risiko dadurch ein wenig abgemildert, dass der Inhalt des Einkaufswagens und der Gesamtbetrag erneut zur abschließenden Bestätigung durch den Benutzer angezeigt wird, doch grundsätzlich bleibt das Risiko bestehen.

Die gängigen Webbrowser unterscheiden bereits seit Jahren zwischen HTTPS- und Nicht-HTTPS-Dateien. Das erläuterte Szenario verdeutlicht, weshalb diese Unterscheidung so wichtig ist. Flash Player bietet die Möglichkeit, diese Sicherheitsvorkehrung zu umgehen, wenn dies absolut erforderlich ist. Zuvor sollten Sie sich jedoch die möglichen Folgen sehr genau bewusst machen.

Weitere Informationen zum Thema Sicherheit finden Sie im Flash Player Developer Center im Abschnitt Sicherheit.

Parameter

... domains — Ein oder mehrere Strings bzw. URLRequest-Objekte zur Bezeichnung der Domänen, über die Sie den Zugriff gewähren möchten. Sie können die Sonderdomäne „*“ angeben, um den Zugriff über alle Domänen zu ermöglichen.

Nur durch Angabe von „*“ kann der Zugriff auf nicht lokale SWF-Dateien über lokale SWF-Dateien ermöglicht werden, die unter Verwendung der Option „Nur auf Netzwerk zugreifen“ für die Einstellung „Sicherheit bei lokaler Wiedergabe“ („Datei“ > „Einstellungen für Veröffentlichungen“ > Registerkarte „Flash“) im Flash-Authoringtool veröffentlicht wurden.

Hinweis: Der Platzhalterwert funktioniert nicht für Subdomänen. Sie können zum Beispiel nicht *.foo.com für den domains-Parameter verwenden. Sie können zwar eine Subdomäne mit einem Platzhalterwert für eine domänenübergreifende Richtliniendatei angeben (wie in *.foo.com), es ist jedoch nicht möglich einen Platzhalterwert auf diese Weise für die allowInsecureDomain()-Methode zu verwenden.


Auslöser
SecurityError — Der Aufruf dieser Methode vom Code in der Sicherheitssandbox der AIR-Anwendung verursacht eine SecurityError-Ausnahme. Inhalt außerhalb der Sicherheitssandbox der Anwendung kann kein Cross-Scripting für Inhalte in der Sicherheitssandbox der Anwendung ausführen.

Verwandte API-Elemente

loadPolicyFile

()Methode 
public static function loadPolicyFile(url:String):void

Sprachversion: ActionScript 3.0
Laufzeitversionen: AIR 1.0, Flash Player 9, Flash Lite 4

Sucht an dem durch den url-Parameter angegebenen Ort nach einer Richtliniendatei. In Adobe AIR und Flash Player wird mithilfe von Richtliniendateien bestimmt, ob über Anwendungen Daten von anderen Servern als dem eigenen geladen werden können. Bitte beachten Sie, dass der Methodenname zwar loadPolicyFile() ist, aber dass die Datei erst geladen wird, wenn vom Netzwerk eine Richtliniendatei angefordert wird.

Mithilfe von Security.loadPolicyFile() kann Flash Player oder AIR Richtliniendateien von beliebigen Orten laden, wie im folgenden Beispiel veranschaulicht wird:

     Security.loadPolicyFile("http://www.example.com/sub/dir/pf.xml");
     

Hierdurch versucht Flash Player bzw. AIR, von der angegebenen URL eine Richtliniendatei abzurufen. Alle an diesem Speicherort von der Richtliniendatei zugelassenen Berechtigungen gelten auch für alle Inhalte auf der gleichen oder einer niedrigeren Ebene in der virtuellen Ordnerhierarchie des Servers.

Beispielsweise wird bei den folgenden zusätzlichen Codezeilen keine Ausnahme ausgelöst:

 import flash.net.*;
     var request:URLRequest = new URLRequest("http://www.example.com/sub/dir/vars.txt");
     var loader:URLLoader = new URLLoader();
     loader.load(request);
     
     var loader2:URLLoader = new URLLoader();
     var request2:URLRequest = new URLRequest("http://www.example.com/sub/dir/deep/vars2.txt");
     loader2.load(request2);
     

Beim folgenden Code wird jedoch eine Sicherheitsausnahme ausgelöst:

 import flash.net.*;
     var request3:URLRequest = new URLRequest("http://www.example.com/elsewhere/vars3.txt");
     var loader3:URLLoader = new URLLoader();
     loader3.load(request3);
     

Mit loadPolicyFile() können Sie beliebig viele Richtliniendateien laden. Beim Prüfen einer Anforderung, für die eine Richtliniendatei erforderlich ist, wartet Flash Player oder AIR immer, bis der Download der Richtliniendatei abgeschlossen ist, bevor eine Anforderung zurückgewiesen wird. Als letzter Weg, wenn mit loadPolicyFile() keine Richtliniendatei angegeben ist, die eine Anforderung zulässt, konsultiert Flash Player bzw. AIR die ursprünglichen Standardpfade.

Beim Überprüfen auf eine Master-Richtliniendatei wartet Flash Player drei Sekunden lang auf eine Antwort des Servers. Wenn keine Antwort erhalten wird, nimmt Flash Player an, dass es keine Master-Richtliniendatei gibt. Für Aufrufe der Methode loadPolicyFile() besteht hingegen kein standardmäßiges Zeitlimit. Flash Player geht davon aus, dass die aufgerufene Datei vorhanden ist, und wartet für einen beliebigen Zeitraum, um diese zu laden. Um sicherzustellen, dass die Master-Richtliniendatei geladen wird, sollten Sie diese daher mit der Methode loadPolicyFile() explizit aufrufen.

Eine Verbindung mit normalerweise reservierten Ports ist nicht möglich. Eine vollständige Liste der gesperrten Ports finden Sie unter „Beschränken von Netzwerk-APIs“ im ActionScript 3.0 Entwicklerhandbuch.

Wenn Sie das xmlsocket-Protokoll zusammen mit einer angegebenen Portnummer verwenden, können Sie Richtliniendatei direkt von einem XMLSocket-Server abrufen, wie im folgenden Beispiel gezeigt. Socket-Verbindungen unterliegen nicht der oben beschriebenen Beschränkung für reservierte Ports.

     Security.loadPolicyFile("xmlsocket://foo.com:414");
     

Hierdurch versucht Flash Player bzw. AIR, eine Richtliniendatei von dem angegebenen Host und Port abzurufen. Wurde eine Verbindung mit dem angegebenen Port hergestellt, sendet Flash Player oder AIR <policy-file-request />, beendet mit einem null-Byte. Der Server muss zum Beenden einer Richtliniendatei ein Null-Byte senden und kann die Verbindung anschließend schließen. Tut er dies nicht, schließt Flash Player oder AIR die Verbindung nach Erhalt des beendenden null-Byte.

Sie können eine SWF-Datei daran hindern, diese Methode aufzurufen, indem Sie auf der HTML-Seite, die den SWF-Inhalt enthält, den Parameter allowNetworking der object- und embed-Tags festlegen.

Weitere Informationen zum Thema Sicherheit finden Sie im Flash Player Developer Center im Abschnitt Sicherheit.

Parameter

url:String — Die URL der Richtliniendatei, die geladen werden soll.

showSettings

()Methode 
public static function showSettings(panel:String = "default"):void

Sprachversion: ActionScript 3.0
Laufzeitversionen: AIR 1.0, Flash Player 9, Flash Lite 4

Zeigt das Bedienfeld für die Sicherheitseinstellungen in Flash Player an. Diese Methode gilt nicht für Inhalt in Adobe AIR; der Aufruf in einer AIR-Anwendung hat keine Auswirkungen.

Parameter

panel:String (default = "default") — Ein Wert der SecurityPanel-Klasse, der angibt, welches Bedienfeld für die Sicherheitseinstellungen angezeigt wird. Wenn Sie diesen Parameter weglassen, wird SecurityPanel.DEFAULT verwendet.

Verwandte API-Elemente

Konstantendetails

APPLICATION

Konstante
public static const APPLICATION:String = "application"

Sprachversion: ActionScript 3.0
Laufzeitversionen: AIR 1.0, Flash Lite 4

Die Datei wird in einer AIR-Anwendung ausgeführt und sie wurde mit dem Paket (der AIR-Datei) für diese Anwendung installiert. Der Inhalt befindet sich im Ressourcenordner der AIR-Anwendung (in dem der Anwendungsinhalt installiert wird).

Verwandte API-Elemente

LOCAL_TRUSTED

Konstante 
public static const LOCAL_TRUSTED:String = "localTrusted"

Sprachversion: ActionScript 3.0
Laufzeitversionen: AIR 1.0, Flash Player 9, Flash Lite 4

Die Datei ist eine lokale Datei, die vom Benutzer über den Flash Player-Einstellungsmanager oder eine FlashPlayerTrust-Konfigurationsdatei als vertrauenswürdig eingestuft wurde. Die Datei kann lokale Datenquellen lesen und eine Verbindung mit dem Internet herstellen.

Verwandte API-Elemente

LOCAL_WITH_FILE

Konstante 
public static const LOCAL_WITH_FILE:String = "localWithFile"

Sprachversion: ActionScript 3.0
Laufzeitversionen: AIR 1.0, Flash Player 9, Flash Lite 4

Die Datei ist eine lokale Datei, wurde vom Benutzer nicht als vertrauenswürdig einstuft, und es handelt sich nicht um eine SWF-Datei, die mit einem Netzwerkziel veröffentlicht wurde. In Adobe AIR befindet sich die lokale Datei nicht im Ressourcenordner der Anwendung; diese Dateien werden in der Sicherheitssandbox der Anwendung abgelegt. Die Datei kann lokale Datenquellen lesen, jedoch keine Verbindung mit dem Internet herstellen.

Verwandte API-Elemente

LOCAL_WITH_NETWORK

Konstante 
public static const LOCAL_WITH_NETWORK:String = "localWithNetwork"

Sprachversion: ActionScript 3.0
Laufzeitversionen: AIR 1.0, Flash Player 9, Flash Lite 4

Die Datei ist eine lokale Datei, wurde vom Benutzer nicht als vertrauenswürdig einstuft, und es handelt sich um eine SWF-Datei, die mit einem Netzwerkziel veröffentlicht wurde. Die Datei kann eine Verbindung mit dem Internet herstellen, jedoch keine lokalen Datenquellen lesen.

Verwandte API-Elemente

REMOTE

Konstante 
public static const REMOTE:String = "remote"

Sprachversion: ActionScript 3.0
Laufzeitversionen: AIR 1.0, Flash Player 9, Flash Lite 4

Die Datei stammt von einer Internet-URL und kann entsprechend den domänenbasierten Sandbox-Regeln verwendet werden.

Verwandte API-Elemente

SecurityExample.as

Das folgende Beispiel demonstriert, wie Sie mit einem click-Ereignis eines Sprite-Objekts das Bedienfeld für die Einstellungen des lokalen Speichers in den Flash Player-Einstellungen anzeigen können. Der Bühne wird mithilfe von draw() ein orangefarbenes Feld hinzugefügt. Zu draw() wird ein click-Ereignis-Listener mit dem Namen clickHandler() hinzugefügt, der auf click-Ereignisse reagiert, indem Flash Player veranlasst wird, das Bedienfeld für die Einstellungen des lokalen Speichers zu öffnen.
package {
    import flash.display.Sprite;
    import flash.text.TextField;
    import flash.events.*;
    import flash.system.Security;
    import flash.system.SecurityPanel;

    public class SecurityExample extends Sprite {
        private var bgColor:uint = 0xFFCC00;
        private var size:uint = 100;

        public function SecurityExample() {
            draw();
        }

        private function draw():void {
            var child:Sprite = new Sprite();
            child.graphics.beginFill(bgColor);
            child.graphics.drawRect(0, 0, size, size);
            child.graphics.endFill();
            child.buttonMode = true;

            var label:TextField = new TextField();
            label.text = "settings";
            label.selectable = false;
            label.mouseEnabled = false;
            child.addChild(label);

            child.addEventListener(MouseEvent.CLICK, clickHandler);
            addChild(child);
        }

        private function clickHandler(event:MouseEvent):void {
            Security.showSettings(SecurityPanel.LOCAL_STORAGE);
        }
    }
}




[ X ]Warum auf Englisch?
Inhalt des ActionScript 3.0-Referenzhandbuchs wird in englischer Sprache angezeigt

Nicht alle Teile des ActionScript 3.0-Referenzhandbuchs wurden in alle Sprachen übersetzt. Wenn der Text zu einem Sprachelement nicht übersetzt wurde, wird er auf Englisch angezeigt. Zum Beispiel wurden die Informationen zur ga.controls.HelpBox-Klasse nicht in andere Sprachen übersetzt. In der deutschen Version des Referenzhandbuchs erscheint der Abschnitt zur ga.controls.HelpBox-Klasse deshalb auf Englisch.