ActionScript® 3.0 — dokumentacja dla platformy Adobe® Flash®
Strona główna  |  Ukryj listę pakietów i klas |  Pakiety  |  Klasy  |  Nowości  |  Indeks  |  Dodatki  |  Dlaczego język angielski?
Filtry: AIR 30.0 i wcześniejsze, Flash Player 30.0 i wcześniejsze, Flash Lite 4
Flex 4.6 i wcześniejsze, Flash Pro CS6 i wcześniejsze
Ukryj filtry
flash.system 

Security  - AS3

Pakietyx

Najwyższy poziom
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

Elementy językowe

Stałe globalne
Funkcje globalne
Operatory
Instrukcje, słowa kluczowe i dyrektywy
Typy specjalne

Dodatki

Nowości
Błędy kompilatora
Ostrzeżenia kompilatora
Błędy czasu wykonywania
Migracja kodu ActionScript 3
Obsługiwane zestawy znaków
Tylko MXML
Elementy XML dotyczące ruchu
Znaczniki tekstu z synchronizacją czasową
Przestarzały indeks
Stałe implementacji dostępności
Instrukcje dotyczące przykładów
Informacje prawne
Pakietflash.system
Klasapublic final class Security
DziedziczenieSecurity Inheritance Object

Wersja języka: ActionScript 3.0
Wersje środowiska wykonawczego: AIR 1.0, Flash Player 9, Flash Lite 4

Klasa Security pozwala określić sposób wzajemnej komunikacji między zawartością różnych domen.

Wyświetl przykłady



Właściwości publiczne
 WłaściwośćZdefiniowane przez
 Inheritedconstructor : Object
Odwołanie do obiektu klasy lub funkcji konstruktora, dotyczące danej instancji obiektu.
Object
  exactSettings : Boolean
[statyczny] Określa, w jaki sposób program Flash Player lub AIR ma wybierać domenę dotyczącą pewnych ustawień zawartości, w tym ustawień odpowiedzialnych za uprawnienia dostępu do mikrofonu i kamery, przydziały zasobów i przechowywanie trwałych obiektów udostępnionych.
Security
  pageDomain : String
[statyczny] [tylko do odczytu] Fragment domeny strony HTML zawierającej plik SWF.
Security
  sandboxType : String
[statyczny] [tylko do odczytu] Wskazuje typ obszaru izolowanego, w których działa wywołujący plik
Security
Metody publiczne
 MetodaZdefiniowane przez
  
[statyczny] Zezwala plikom SWF w rozpoznanych domenach na uzyskiwanie dostępu do obiektów i zmiennych w pliku SWF zawierającym wywołanie metody allowDomain().
Security
  
[statyczny] Zezwala plikom SWF i HTML w zidentyfikowanych domenach na dostęp do obiektów i zmiennych w wywołującym pliku SWF udostępnianym przy użyciu protokołu HTTPS.
Security
 Inherited
Wskazuje, czy dla obiektu zdefiniowano określoną właściwość.
Object
 Inherited
Wskazuje, czy instancja klasy Object należy do łańcucha prototypów obiektu określonego jako parametr.
Object
  
[statyczny] Wyszukuje plik reguł w lokalizacji określonej przez parametr url.
Security
 Inherited
Wskazuje, czy określona właściwość istnieje i jest przeliczalna.
Object
 Inherited
Ustawia dostępność właściwości dynamicznej używanej w pętlach.
Object
  
showSettings(panel:String = "default"):void
[statyczny] Powoduje, że w programie Flash Player jest wyświetlany panel ustawień zabezpieczeń.
Security
 Inherited
Zwraca ciąg reprezentujący obiekt — sformatowany zgodnie z konwencjami właściwymi dla ustawień regionalnych.
Object
 Inherited
Zwraca ciąg reprezentujący określony obiekt.
Object
 Inherited
Zwraca pierwotną wartość dla określonego obiektu.
Object
Stałe publiczne
 StałaZdefiniowane przez
  APPLICATION : String = "application"
[statyczny] Plik działa w aplikacji AIR i został zainstalowany z pakietem (plik AIR) dla tej aplikacji.
Security
  LOCAL_TRUSTED : String = "localTrusted"
[statyczny] Plik jest plikiem lokalnym, a użytkownik nadał mu status pliku zaufanego (za pomocą Menedżera ustawień programu Flash Player lub pliku konfiguracyjnego FlashPlayerTrust).
Security
  LOCAL_WITH_FILE : String = "localWithFile"
[statyczny] Plik jest plikiem lokalnym, nie został zaakceptowany przez użytkownika jako plik zaufany i nie jest to plik SWF, który został opublikowany w sieci.
Security
  LOCAL_WITH_NETWORK : String = "localWithNetwork"
[statyczny] Plik jest plikiem lokalnym, nie został zaakceptowany przez użytkownika jako plik zaufany i jest to plik SWF, który został opublikowany w sieci.
Security
  REMOTE : String = "remote"
[statyczny] Plik pochodzi z Internetu i jest kontrolowany za pomocą domenowych reguł z obszaru izolowanego.
Security
Szczegół właściwości

exactSettings

właściwość
exactSettings:Boolean

Wersja języka: ActionScript 3.0
Wersje środowiska wykonawczego: AIR 1.0, Flash Player 9, Flash Lite 4

Określa, w jaki sposób program Flash Player lub AIR ma wybierać domenę dotyczącą pewnych ustawień zawartości, w tym ustawień odpowiedzialnych za uprawnienia dostępu do mikrofonu i kamery, przydziały zasobów i przechowywanie trwałych obiektów udostępnionych. Aby plik SWF korzystał z tych samych ustawień, które używane były w programie Flash Player 6, należy ustawić właściwość exactSettings na wartość false.

W programie Flash Player 6 domena używana dla tych ustawień odtwarzacza była określana na podstawie końcowej części nazwy domeny pliku SWF. Jeśli domena pliku SWF składała się z więcej niż dwóch segmentów, www.example.com, pierwszy segment („www”) był usuwany, a używana była pozostała część nazwy domeny: example.com. A zatem w programie Flash Player 6 domena example.com byłaby używana dla omawianych ustawień zarówno w przypadku nazwy www.example.com, jak i store.example.com. Podobnie, w przypadku nazw www.example.co.uk i store.example.co.uk nazwa domeny ustawień byłaby równa example.co.uk. W programie Flash Player 7 i nowszych wersjach ustawienia odtwarzacza są domyślnie wybierane na podstawie całej nazwy domeny pliku SWF; na przukład plik SWF z witryny www.example.com używałby ustawień odtwarzacza dla domeny www.example.com, a plik SWF z witryny store.example.com używałby odrębnych ustawień odtwarzacza dla domeny store.example.com.

Gdy właściwość Security.exactSettings jest ustawiona na true, program Flash Player lub środowisko AIR wybiera ustawienia na podstawie pełnych nazw domen. Domyślnie właściwość exactSettings ma wartość true. Ewentualnej zmiany wartości właściwości exactSettings na inną niż domyślna należy dokonać, zanim wystąpią zdarzenia wymuszające na programie Flash Player lub środowisku AIR wybór ustawień odtwarzacza — na przykład takie, jak użycie kamery lub mikrofonu bądź pobranie trwałego obiektu współużytkowanego.

Jeśli wcześniej opublikowano plik SWF w wersji 6 i utworzono z niego trwałe obiekty współużytkowane, a teraz zachodzi potrzeba pobrania takich obiektów z tego pliku SWF po przeniesieniu go do wersji 7 lub nowszej, ewentualnie pobrania takich obiektów z innego pliku SWF w wersji 7 lub nowszej, należy ustawić właściwość Security.exactSettings na false przed wywołaniem metody SharedObject.getLocal().



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

Zgłasza
SecurityError — Aplikacja Flash Player lub AIR użyła już wartości właściwości exactSettings co najmniej raz w procesie podejmowania decyzji dotyczącej ustawień odtwarzacza.

pageDomain

właściwość 
pageDomain:String  [tylko do odczytu]

Wersja języka: ActionScript 3.0
Wersje środowiska wykonawczego: Flash Player 10.3, AIR 2.7

Fragment domeny strony HTML zawierającej plik SWF.

Ze względów bezpieczeństwa ta metoda nie zwraca pełnego adresu URL, a jedynie domenę strony, na przykład http://www.example.com. Jeśli ten plik SWF nie znajduje się na stronie HTML lub ze względów bezpieczeństwa nie można uzyskać dostępu do domeny strony, ta właściwość zwraca ciąg undefined.



Implementacja
    public static function get pageDomain():String

sandboxType

właściwość 
sandboxType:String  [tylko do odczytu]

Wersja języka: ActionScript 3.0
Wersje środowiska wykonawczego: AIR 1.0, Flash Player 9, Flash Lite 4

Wskazuje typ obszaru izolowanego, w których działa wywołujący plik.

Właściwość Security.sandboxType zawiera jedną z następujących wartości:

  • remote (Security.REMOTE) — Plik pochodzi z internetowego adresu URL i jest kontrolowany przez reguły domenowe z obszaru izolowanego.
  • localWithFile (Security.LOCAL_WITH_FILE) — Plik jest plikiem lokalnym, nie został zaakceptowany przez użytkownika jako plik zaufany i nie jest to plik SWF, który został opublikowany w sieci. Plik może odczytywać lokalne źródła danych, ale nie może komunikować się z Internetem.
  • localWithNetwork (Security.LOCAL_WITH_NETWORK) — Plik SWF jest plikiem lokalnym, nie został zaakceptowany przez użytkownika jako plik zaufany i został opublikowany w sieci. Plik SWF może komunikować się z Internetem, ale nie może czytać z lokalnych źródeł danych.
  • localTrusted (Security.LOCAL_TRUSTED) — Plik jest plikiem lokalnym, a użytkownik nadał mu status pliku zaufanego (za pomocą Menedżera ustawień programu Flash Player lub pliku konfiguracyjnego FlashPlayerTrust). Plik może odczytywać lokalne źródła danych i może komunikować się z Internetem.
  • application (Security.APPLICATION) — Plik działa w aplikacji AIR i został zainstalowany z pakietem (plik AIR) dla tej aplikacji. Domyślnie pliki w obszarze izolowanym aplikacji AIR mogą wymieniać skrypty z jakiegokolwiek pliku z dowolnej domeny (mimo że pliki spoza obszaru izolowanego aplikacji AIR nie mają uprawnień do wywoływania skryptów z plików AIR). Domyślnie pliki z obszaru izolowanego aplikacji AIR mogą ładować zawartość i dane z dowolnej domeny.

Więcej informacji na temat zabezpieczeń zawiera odpowiedni temat w Centrum programistów programu Flash Player w kategorii Bezpieczeństwo.



Implementacja
    public static function get sandboxType():String

Powiązane elementy interfejsu API

Szczegół metody

allowDomain

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

Wersja języka: ActionScript 3.0
Wersje środowiska wykonawczego: AIR 1.0, Flash Player 9, Flash Lite 4

Zezwala plikom SWF w rozpoznanych domenach na uzyskiwanie dostępu do obiektów i zmiennych w pliku SWF zawierającym wywołanie metody allowDomain().

Uwaga: Wywołanie tej metody z kodu w obszarze izolowanym aplikacji AIR powoduje zgłoszenie wyjątku SecurityError. Treść spoza domeny zabezpieczeń aplikacji nie może wykonywać krzyżowo skryptów w treści w obszarze izolowanym aplikacji. Jednak treść spoza obszaru izolowanego aplikacji może komunikować się z treścią w obszarze izolowanym, korzystając z mostka obszaru izolowanego.

Jeśli dwa pliki SWF są udostępniane przez serwer z tej samej domeny — na przykład http://mysite.com/swfA.swf i http://mysite.com/swfB.swf — wówczas plik swfA.swf może odczytywać i modyfikować zmienne, obiekty, właściwości, metody itd. w pliku swfB.swf, a plik swfB.swf może wykonywać analogiczne operacje na na pliku swfA.swf. Mówimy w tym przypadku o wykonywaniu skryptów między filmami lub o krzyżowym wykonywaniu skryptów.

Jeśli dwa pliki SWF są udostępniane przez serwery z różnych domen — na przykład http://siteA.com/swfA.swf i http://siteB.com/siteB.swf — wówczas domyślnie program Flash Player nie zezwala plikowi swfA.swf na wykonywanie operacji skryptowych na pliku swfB.swf, ani nie zezwala plikowi swfB.swf na wykonywanie operacji skryptowych na pliku swfA.swf. Plik SWF udziela uprawnień plikom SWF z innych domen, wywołując metodę Security.allowDomain(). Ten mechanizm nazywany jest międzydomenowym wykonywaniem skryptów. Poprzez wywołanie Security.allowDomain("siteA.com"), plik siteB.swf udziela plikowi siteA.swf zezwolenia na wykonywanie na sobie operacji skryptowych.

Przy wszelkich odwołaniach między skryptami konieczne jest jednoznaczne określenie obu uczestniczących plików. Na potrzeby tej dyskusji plik odwołujący się będzie nazywany stroną wywołującą (zwykle jest to wywołujący plik SWF), a drugi plik będzie nazywany stroną wywoływaną (zwykle jest to wywoływany plik SWF lub plik, do którego w inny sposób uzyskiwany jest dostęp). Gdy plik siteA.swf odwołuje się do pliku siteB.swf, siteA.swf jest stroną wywołującą, a siteB.swf jest stroną wywoływaną.

Diagram wywołań międzydomenowych

Uprawnienia międzydomenowe ustanowione za pomocą metody allowDomain() są asymetryczne. W poprzednim przykładzie plik siteA.swf może odwołać się do pliku siteB.swf, ale plik siteB.swf nie może odwołać się do siteA.swf, ponieważ siteA.swf nie wywołał metody allowDomain() w celu nadania plikom SWF w witrynie siteB.com uprawnień do odwoływania się do siebie. Możliwe jest ustanowienie uprawnień symetrycznych poprzez wywołanie metody allowDomain() w obu plikach SWF.

Oprócz zapewnienia plikom SWF ochrony przed odwołaniami pochodzącymi z innych plików SWF i domen, program Flash Player chroni pliki SWF przed wywołaniami z innych domen inicjowanymi przez pliki HTML. Wykonanie operacji skryptowych plików HTML na plikach SWF może wystąpić w starszych funkcjach przeglądarki, np. SetVariable lub wywołaniach zwrotnych ustanawianych za pomocą metody ExternalInterface.addCallback(). Gdy wywołanie skryptowe z kodu HTML do SWF przekracza granicę domeny, docelowy plik SWF musi wcześniej wywołać metodę allowDomain(), podobnie jak dla wywołań z innego pliku SWF — w przeciwnym razie operacja nie powiedzie się.

Określenie adresu IP jako parametru metody allowDomain() nie zezwala na dostęp dla wszystkich stron, które pochodzą z określonego adresu IP. Zamiast tego dozwolony jest jedynie dostęp dla strony, która zawiera określony adres IP w jej adresie URL, a nie dla domeny, która odwzorowywana jest na ten adres IP.

Różnice charakterystyczne dla wersji

Reguły zabezpieczeń międzydomenowych w programie Flash Player ewoluowały między wersjami. Poniższa tabela podsumowuje różnice.

Ostatnia wersja SWF zaangażowana w operację międzyskryptowąMetoda allowDomain() wymagana?Metoda allowInsecureDomain() wymagana?Czy plik SWF ma wywoływać metodę allowDomain(), czy allowInsecureDomain()?Co można określić w metodzie allowDomain() lub allowInsecureDomain()?
5 lub starszeNieNieN/DN/D
6Tak, jeśli naddomeny są niezgodneNiePlik SWF zezwalający na dostęp lub dowolny plik SWF z tą samą naddomeną, co plik SWF zezwalający na dostęp
  • Domena zapisana w postaci tekstu (np. mysite.com)
  • Adres IP (np. 192.168.1.1)
7Tak, jeśli domeny nie są w pełni zgodneTak w przypadku dostępu z HTTP do HTTPS (nawet jeśli domeny są w pełni zgodne)SWF zezwalający na dostęp lub dowolny plik SWF z dokładnie tą samą domeną, co plik SWF zezwalający na dostęp
  • Domena zapisana w postaci tekstu (np. mysite.com)
  • Adres IP (np. 192.168.1.1)
8 lub nowszaTak, jeśli domeny nie są w pełni zgodneTak w przypadku dostępu z HTTP do HTTPS (nawet jeśli domeny są w pełni zgodne)Plik SWF zezwalający na dostęp
  • Domena zapisana w postaci tekstu (np. mysite.com)
  • Adres IP (np. 192.168.1.1)
  • Symbol wieloznaczny (*)

Wersje, które sterują zachowaniem programu Flash Player, są wersjami SWF (publikowanymi wersjami pliku SWF), nie zaś wersjami samego programu Flash Player. Na przykład: jeśli program Flash Player 8 odtwarza plik SWF opublikowany dla wersji 7, zastosowane zostanie zachowanie zgodne z wersją 7. Takie postępowanie zapewnia, że uaktualniania odtwarzacza nie zmienią zachowania metody Security.allowDomain() w zainstalowanych plikach SWF.

Kolumna wersji w poprzedniej tabeli pokazuje, że ostatnia wersja SWF obejmuje operację wywołań między skryptami. Program Flash Player określa swoje zachowanie na podstawie wersji pliku SWF ubiegającego się o dostęp lub wersji pliku SWF zezwalającego na dostęp, w zależności od tego, która wersja jest nowsza.

Poniższe akapity zawierają bardziej szczegółowe informacje na temat zmian zabezpieczeń w programie Flash Player obejmujących metodę Security.allowDomain().

Wersja 5. Brak ograniczeń dla międzydomenowego wykonywania operacji skryptowych.

Wersja 6. Wprowadzenie zabezpieczeń dla międzydomenowego wykonywania operacji skryptowych. Domyślnie program Flash Player nie zezwala na międzydomenowe wykonywanie operacji skryptowych; zezwolić na to może metoda Security.allowDomain(). Aby określić, czy dwa pliki znajdują się w tej samej domenie, program Flash Player używa naddomeny każdego pliku, który jest dokładną nazwą hosta z adresu URL pliku, po odjęciu pierwszego segmentu (tak aby pozostały minimum dwa segmenty). Na przykład: naddomeną www.mysite.com jest mysite.com. Pliki SWF z domen www.mysite.com i store.mysite.com wykonują między sobą operacje skryptowe, nie wywołując metody Security.allowDomain().

Wersja 7. Zamiast dopasowywania naddomen stosowane jest dokładne dopasowywanie domen. Dwa pliki mogą wykonać między sobą operacje skryptowe tylko, jeśli nazwy hostów w ich adresach URL są identyczne; w innym wypadku wymagane jest wywołanie metody Security.allowDomain(). Domyślnie pliki załadowane z adresów URL innych niż protokołu HTTPS, nie mogą wykonać operacji skryptowych na plikach załadowanych z adresów URL protokołu HTTPS nawet, jeśli pliki załadowane zostały z dokładnie tej samej domeny. To ograniczenie pomaga chronić pliki udostępniane przez protokół HTTPS, ponieważ plik udostępniony przez protokół inny niż HTTPS jest podatny na modyfikacje w czasie pobierania i złośliwie zmodyfikowany plik udostępniony przez protokół inny niż HTTPS może uszkodzić plik udostępniony przez protokół HTTPS, który jest odporny na takie manipulacje. Metoda Security.allowInsecureDomain() została wprowadzona w celu umożliwienia plikom SWF udostępnianym z zasady przez protokół HTTPS dobrowolnego wyłączenia tego ograniczenia, jednak użycie metody Security.allowInsecureDomain() nie jest zalecane.

Wersja 8. Dwa główne obszary zmian to:

  • Wywołanie metody Security.allowDomain() zezwala na wykonywanie operacji między skryptami tylko, jeśli plik SWF zezwalający na dostęp jest plikiem SWF, który wywołał metodę Security.allowDomain(). Innymi słowy, plik SWF, który wywołuje metodę Security.allowDomain(), zezwala na dostęp tylko do własnej treści. W poprzednich wersjach wywołanie metody Security.allowDomain() zezwala na wykonywanie operacji między skryptami w miejscu, w którym plik SWF zezwalający na dostęp może być dowolnym plikiem SWF w tej samej domenie co plik SWF, który wywołał metodę Security.allowDomain(). Wcześniej wywołanie metody Security.allowDomain() powodowało otwarcie całej domeny wywołującej pliku SWF.
  • Dzięki wywołaniom Security.allowDomain("*") i Security.allowInsecureDomain("*") dodana została obsługa symbolu wieloznacznego. Symbol wieloznaczny (*) zezwala na wykonywanie operacji między skryptami w miejscu, w którym plik ubiegający się o dostęp jest dowolnym plikiem ładowanym z dowolnej lokalizacji. Symbol wieloznaczny należy interpretować jako uprawnienie globalne. Uprawnienia definiowane za pomocą symbolu wieloznacznego są wymagane w celu umożliwienia wykonania pewnego rodzaju operacji z zachowaniem reguł zabezpieczeń dla plików lokalnych. Szczególnie w przypadku lokalnego pliku SWF z uprawnieniami do dostępu sieciowego w celu wykonania operacji skryptowych na pliku SWF w Internecie, plik SWF w Internecie zezwalający na dostęp musi wywołać metodę Security.allowDomain("*"), wskazując, że pochodzenie lokalnego pliku SWF jest nieznane. (Jeśli plik SWF w Internecie zostanie załadowany z adresu URL za pomocą protokołu HTTPS, plik SWF w Internecie musi w zamian wywołać metodę Security.allowInsecureDomain("*")).

Sporadycznie można się natknąć na następującą sytuację: Programista ładuje podrzędny plik SWF z innej domeny i chce umożliwić podrzędnemu plikowi SWF wykonanie operacji skryptowych na nadrzędnym pliku SWF, jednak końcowa domena podrzędnego pliku SWF jest nieznana. Taka sytuacja ma miejsce np. w momencie korzystania z przekierowań równoważących obciążenie lub serwerów innych firm.

W tej sytuacji można użyć właściwości url obiektu URLRequest, który jest przekazywany do metody Loader.load(). Na przykład, jeśli podrzędny plik SWF zostanie załadowany do nadrzędnego pliku SWF, możliwy będzie dostęp do właściwości contentLoaderInfo obiektu Loader dla nadrzędnego pliku SWF:

Security.allowDomain(loader.contentLoaderInfo.url)

Należy zaczekać, aż podrzędny plik SWF rozpocznie ładowanie w celu pobrania poprawnej wartości właściwości url. Aby określić, kiedy podrzędny plik SWF rozpoczął ładowanie, należy użyć zdarzenia progress.

Może również wystąpić sytuacja odwrotna, tzn. może zostać utworzony podrzędny plik SWF, który zechce pozwolić swojemu plikowi nadrzędnemu, aby ten wykonał na nim operacje skryptowe, ale nie zna domeny tego pliku nadrzędnego. W tej sytuacji możliwe jest uzyskanie dostępu do właściwości loaderInfo obiektu wyświetlanego, który jest obiektem głównym pliku SWF. W pliku podrzędnym SWF należy wywołać metodę Security.allowDomain( this.root.loaderInfo.loaderURL). Nie ma konieczności czekania na załadowanie nadrzędnego pliku SWF; nadrzędny plik zostanie załadowany, zanim załadowany zostanie plik podrzędny.

Jeśli treść jest publikowana dla wersji Flash Player 8 lub nowszej, sytuacje te można również obsłużyć, wywołując metodę Security.allowDomain("*"). Czasami jednak takie „skracanie sobie drogi” może okazać się niebezpieczne, ponieważ umożliwia uzyskanie dostępu do wywołującego pliku SWF przez dowolny inny plik SWF z dowolnej domeny. Bezpieczniejszym rozwiązaniem jest zazwyczaj użycie właściwości _url.

Więcej informacji na temat zabezpieczeń zawiera odpowiedni temat w Centrum programistów programu Flash Player w kategorii Bezpieczeństwo.

Parametry

... domains — Jeden lub większa liczba ciągów znaków lub obiektów URLRequest, które określają nazwy domen, z których użytkownik chce umożliwić dostęp. Istnieje możliwość określenia domeny specjalnej „*”, aby umożliwić dostęp z wszystkich domen.

W programie Flash Professional: określenie „*” jest jedynym sposobem na to, aby umożliwić dostęp do nielokalnych plików SWF z lokalnych plików SWF, które zostały opublikowane przy użyciu opcji Tylko sieć lokalna (dostępnej w ramach opcji Zabezpieczenie odtwarzania lokalnego w narzędziu produkcyjnym Flash).

Uwaga: Symbol wieloznaczny nie działa w przypadku poddomen. Na przykład nie można użyć wyrażenia *.foo.com dla parametru domains. O ile można określić poddomenę z symbolem wieloznacznym dla pliku reguł międzydomenowych (jak na przykład w *.foo.com), nie można w ten sposób użyć symbolu wieloznacznego dla metody allowDomain().


Zgłasza
SecurityError — Wywołanie tej metody z kodu w obszarze izolowanym aplikacji AIR powoduje zgłoszenie wyjątku SecurityError. Zawartość spoza obszaru izolowanego aplikacji nie może generować skryptów krzyżowych dla zawartości w tym obszarze.

Powiązane elementy interfejsu API

allowInsecureDomain

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

Wersja języka: ActionScript 3.0
Wersje środowiska wykonawczego: AIR 1.0, Flash Player 9, Flash Lite 4

Zezwala plikom SWF i HTML w zidentyfikowanych domenach na dostęp do obiektów i zmiennych w wywołującym pliku SWF udostępnianym przy użyciu protokołu HTTPS.

W programie Flash Player udostępniono metodę allowInsecureDomain(), aby zapewnić autorom skryptów bardziej elastyczną funkcjonalność, jednak wywoływanie tej metody nie jest zalecane. Udostępnianie pliku przy użyciu protokołu HTTPS pod pewnymi względami chroni serwer oraz użytkowników, natomiast wywołanie metody allowInsecureDomain zmniejsza skuteczność tej ochrony.

Uwaga: Wywołanie tej metody z kodu w obszarze izolowanym aplikacji AIR powoduje zgłoszenie wyjątku SecurityError. Treść spoza domeny zabezpieczeń aplikacji nie może wykonywać krzyżowo skryptów w treści w obszarze izolowanym aplikacji. Jednak treść spoza obszaru izolowanego aplikacji może komunikować się z treścią w obszarze izolowanym, korzystając z mostka obszaru izolowanego.

Ta metoda działa tak samo, jak metoda Security.allowDomain(), ale dodatkowo zezwala na operacje, w których strona uzyskująca dostęp jest ładowana z użyciem protokołu innego niż HTTPS, zaś strona, do której uzyskiwany jest dostęp, jest ładowana przy użyciu protokołu HTTPS. W programie Flash Player 7 i nowszych wersjach pliki udostępniane przez protokół inny niż HTTPS nie mogą wykonywać operacji skryptowych na plikach udostępnianych przez protokół HTTPS. Metoda allowInsecureDomain() usuwa to ograniczenie, jeśli zostanie wywołana z pliku SWF udostępnianego przez protokół HTTPS.

Metody allowInsecureDomain() należy używać wyłącznie w celu umozliwienia plikom udostępnianym przez protokół inny niż HTTPS wykonywanie operacji skryptowych na plikach udostępnianych przez HTTPS. Jej zastosowanie ogranicza się do sytuacji, gdy zarówno plik udostępniany przez protokół HTTPS, jak i plik udostępniany przez inny protokół, są udostępniane przez serwer w tej samej domenie, np. jeśli plik SWF z witryny http://mysite.com chce wykonywać operacje skryptowe na pliku SWF z witryny https://mysite.com. Nie należy używać tej metody do zezwalania na wykonywanie operacji skryptowych między dwoma plikami udostępnianymi przez protokoły inne niż HTTPS, między dwoma plikami udostępnianymi przez protokół HTTPS ani operacji z plików udostępnianych przez HTTPS na plikach udostępnianych przez inny protokół. W takich sytuacjach należy używać metody allowDomain().

Poniższy scenariusz ilustruje, jak metoda allowInsecureDomain() może stworzyć sytuację potencjalnie niebezpieczną, jeśli nie będzie stosowana z rozwagą.

Należy zauważyć, że poniższe informacje są tylko jednym z możliwych scenariuszy utworzonym, aby ułatwić zrozumienie działania metody allowInsecureDomain() na podstawie rzeczywistego przykładu wykonywania operacji skryptowych. Nie obejmują one wszystkich problemów związanych z architekturą zabezpieczeń i powinny służyć jedynie jako informacje podstawowe. Serwis Flash Player Developer Center zawiera obszerne informacje na temat programu Flash Player oraz bezpieczeństwa. Więcej informacji zawiera temat: Bezpieczeństwo w serwisie Flash Player Developer Center.

Załóżmy, że programista tworzy sklep internetowy, która zawiera dwa składniki: katalog, który nie musi być zabezpieczony, ponieważ zawiera tylko informacje publiczne; oraz składnik koszyk/kasa, który mysi być zabezpieczony, aby chronić informacje finansowe i osobiste użytkownika. Przypuśćmy, że katalog będzie obsługiwany z pliku http://mysite.com/catalog.swf, a koszyk z pliku https://mysite.com/cart.swf. Jednym z wymogów dla strony jest, aby strony trzecie nie były w stanie wykraść numerów kart kredytowych użytkowników, wykorzystując słabość architektury zabezpieczeń.

Przypuśćmy, że agresor pośredniczący ingeruje między serwerem a użytkownikami strony, próbując wykraść numery kart kredytowych wprowadzanych przez użytkowników w aplikacji koszyka. Stroną pośredniczącą może być np. niedokładny dostawca usług internetowych, z którego usług korzystają niektórzy użytkownicy lub złośliwy administrator w miejscu pracy użytkownika — każdy, kto ma możliwość zobaczenia lub zmiany pakietów sieciowych przesyłanych w Internecie drogą publiczną między użytkownikami a serwerem. Taka sytuacja nie jest wcale rzadkością.

Jeśli plik cart.swf używa do przesyłania na serwer informacji o kartach kredytowych protokołu HTTPS, wówczas agresor pośredniczący nie może bezpośrednio wykraść informacji z pakietów sieciowych, ponieważ transmisja z użyciem protokołu HTTPS jest szyfrowana. Jednak agresor może używać różnych technik: zmiana zawartości jednego z plików SWF podczas dostarczania go do użytkownika, zastąpienie pliku SWF zmienioną wersją, która przesyła informacje użytkownika na inny serwer należący do agresora.

Protokół HTTPS m.in. zapobiega wykonaniu atakom „modyfikującym”, ponieważ poza tym, że jest on szyfrowany, transmisje HTTPS są odporne na manipulacje. Jeśli agresor pośredniczący zmieni pakiet, strona odbierająca wykryje zmianę i odrzuci pakiet. Dlatego agresor w tej sytuacji nie może zmienić pliku cart.swf, ponieważ został on dostarczony za pomocą protokołu HTTPS.

Przypuśćmy jednak, że programista zezwolił przyciskom w pliku catalog.swf, który obsługiwany jest przez protokół HTTP, na dodawanie pozycji do koszyka w pliku cart.swf, który obsługiwany jest przez protokół HTTPS. Aby tego dokonać, plik cart.swf wywołuje metodę allowInsecureDomain(), która zezwala, aby plik catalog.swf odwoływał się do skryptów pliku cart.swf. Działanie to ma niezamierzone konsekwencje: agresor może zmienić plik catalog.swf w chwili rozpoczęcia pobierania go przez użytkownika, ponieważ catalog.swf dostarczany jest za pomocą protokołu HTTP, który nie jest odporny na manipulacje. Zmieniony plik agresora catalog.swf może w tym momencie wykonać operację skryptową na pliku cart.swf, ponieważ cart.swf wywołuje metodę allowInsecureDomain(). Zmieniony plik catalog.swf może użyć kodu ActionScript w celu uzyskania dostępu do zmiennych w pliku cart.swf, a zatem odczytać informacje dotyczące karty kredytowej użytkownika i inne wrażliwe dane. Zmieniony plik catalog.swf może wówczas wysłać te dane na serwer agresora.

Oczywiście taka implementacja nie jest pożądana, ale nadal chcemy, by możliwe było wywoływanie skryptów między oboma plikami SWF w witrynie. Istnieją dwa sposoby na przeprojektowanie hipotetycznej witryny sklepu internetowego, które pozwolą uniknąć użycia metody allowInsecureDomain():

  • Obsługa wszystkich plików SWF w aplikacji za pomocą protokołu HTTPS. Jest to najprostsze i najpewniejsze rozwiązanie. W tym scenariuszu oba pliki catalog.swf i cart.swf należy obsłużyć za pomocą protokołu HTTPS. Po przełączeniu pliku np. catalog.swf z protokołu HTTP na HTTPS może nastąpić niewielki wzrost użycia przepustowości łącza oraz wzrost obciążenia procesora, a użytkownicy mogą doświadczyć nieznacznego wydłużenia czasu ładowania aplikacji. Aby określić wpływ tych efektów, należy przeprowadzić doświadczenia z rzeczywistymi serwerami; zazwyczaj wydajność nie jest gorsza niż 10-20% dla każdego z nich, a czasami nie występuje żadna różnica. Wyniki można zazwyczaj poprawić, instalując na serwerze sprzęt lub oprogramowanie przyspieszające obsługę protokołu HTTPS. Główną korzyścią płynącą z obsługi wszystkich plików SWF współpracujących za pośrednictwem protokołu HTTPS jest możliwość używania adresów URL protokołu HTTPS jako głównego adresu URL w przeglądarce użytkownika bez konieczności generowania jakichkolwiek ostrzeżeń ze strony przeglądarki. W przeglądarce wyświetlana jest również ikona kłódki, powszechnie symbolizująca użytkownikom zaufane zabezpieczenie.
  • Wykonanie operacji skryptowych plików HTTPS na plikach HTTP, zamiast wykonania operacji skryptowych plików HTTP na plikach HTTPS. W tym scenariuszu możliwe jest zapisanie zawartości koszyka użytkownika w pliku catalog.swf i przydzielenie plikowi cart.swf zarządzania procesem dokonywania płatności. W czasie dokonywania płatności plik cart.swf może pobrać zawartość koszyka ze zmiennych ActionScript w pliku catalog.swf. Ograniczenie wywołań skryptowych z plików obsługiwanych przez HTTP do plików obsługiwanych przez HTTPS jest asymetryczne; mimo że plik catalog.swf obsługiwany przez protokół HTTP może nie bezpiecznie wywoływać skrypt w pliku cart.swf obsługiwanym przez HTTPS, plik HTTPS cart.swf może wywoływać plik HTTP catalog.swf. Taka strategia wymaga większej uwagi niż bazowanie wyłącznie na protokole HTTPS; plików SWF dostarczanych za pośrednictwem protokołu HTTP nie można traktować jako zaufanych z uwagi na ryzyko ich nieuprawnionego zmodyfikowania. Na przykład gdy plik cart.swf odczytuje zmienną ActionScript opisującą zawartość koszyka, kod ActionScript w pliku cart.swf nie może zakładać, że wartość tej zmiennej ma oczekiwany format. Należy sprawdzić, czy zawartość koszyka nie zawiera niepoprawnych danych, które mogłyby spowodować wykonanie niepożądanych działań przez plik cart.swf. Konieczne jest także pogodzenie się z ryzykiem, że jakaś strona pośrednicząca może zmodyfikować plik catalog.swf w taki sposób, że do pliku cart.swf trafią dane poprawne, ale zmienione; może to skutkować np. dodaniem towarów do koszyka użytkownika. Typowy proces płatności nieco ogranicza to ryzyko, ponieważ zwykle użytkownik musi ostatecznie zaakceptować listę wybranych towarów i całkowity koszt. Nie oznacza to jednak eliminacji ryzyka.

W przeglądarkach sieci Web od wielu lat obowiązywało ścisłe odseparowanie plików udostępnianych przez HTTPS i przez protokoły inne niż HTTPS, a opisany tutaj scenariusz ilustruje powody takiej separacji. Program Flash Player umożliwia obejście tego zabezpieczenia, jeśli jest to absolutnie konieczne, jednak w takim wypadku należy starannie przemyśleć ewentualne konsekwencje.

Więcej informacji na temat zabezpieczeń zawiera odpowiedni temat w Centrum programistów programu Flash Player w kategorii Bezpieczeństwo.

Parametry

... domains — Jeden lub większa liczba ciągów znaków lub obiektów URLRequest, które określają nazwy domen, z których użytkownik chce umożliwić dostęp. Istnieje możliwość określenia domeny specjalnej „*”, aby umożliwić dostęp z wszystkich domen.

Określenie „*” jest jedynym sposobem na to, aby umożliwić dostęp do nielokalnych plików SWF z lokalnych plików SWF, które zostały opublikowane przy użyciu opcji Tylko sieć lokalna (dostępnej w ramach opcji Zabezpieczenie odtwarzania lokalnego (Plik > Ustawienia publikowania > zakładka Flash) w narzędziu produkcyjnym Flash).

Uwaga: Symbol wieloznaczny nie działa w przypadku poddomen. Na przykład nie można użyć wyrażenia *.foo.com dla parametru domains. O ile można określić poddomenę z symbolem wieloznacznym dla pliku reguł międzydomenowych (jak na przykład w *.foo.com), nie można w ten sposób użyć symbolu wieloznacznego dla metody allowInsecureDomain().


Zgłasza
SecurityError — Wywołanie tej metody z kodu w obszarze izolowanym aplikacji AIR powoduje wywołanie wyjątku SecurityError. Zawartość spoza obszaru izolowanego aplikacji nie może generować skryptów krzyżowych dla zawartości w tym obszarze.

Powiązane elementy interfejsu API

loadPolicyFile

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

Wersja języka: ActionScript 3.0
Wersje środowiska wykonawczego: AIR 1.0, Flash Player 9, Flash Lite 4

Wyszukuje plik reguł w lokalizacji określonej przez parametr url. Programy Adobe AIR i Flash Player korzystają z plików reguł w celu określania, czy aplikacje będą miały uprawnienia do ładowania danych z serwerów innych niż ich własne. Należy zauważyć, że nawet mimo, że metoda nosi nazwę loadPolicyFile(), plik nie jest w rzeczywistości ładowany, dopóki nie zostanie utworzone żądanie sieciowe, które wymaga pliku reguł.

Za pomocą metody Security.loadPolicyFile() program Flash Player lub AIR może ładować pliki reguł z dowolnych lokalizacji, co przedstawia poniższy przykład:

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

Dzięki temu program Flash Player lub AIR próbuje pobrać plik strategii z określonego adresu URL. Wszelkie uprawnienia udzielone przez plik reguł w tej lokalizacji będą miały zastosowanie do całej zawartości na tym lub niższym poziomie w wirtualnej hierarchii katalogów serwera.

Na przykład te wiersze kodu, wykonane po kodzie przedstawionym wcześniej, nie spowodują wygenerowania wyjątku:

 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);
     

Jednak następujący kod spowoduje wygenerowanie wyjątku zabezpieczeń:

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

Za pomocą metody loadPolicyFile() można załadować dowolną liczbę plików reguł. W przypadku rozważania żądania dotyczącego pliku reguł program Flash Player lub środowisko AIR zawsze oczekuje na zakończenie pobierania pliku reguł — dopiero wówczas może odrzucić żądanie. Jeśli żaden plik reguł nie zostanie określony za pomocą metody loadPolicyFile() autoryzującej żądanie, program Flash Player lub środowisko AIR sprawdza na koniec domyślną, oryginalne położenie.

Poszukując nadrzędnego pliku strategii, program Flash Player czeka trzy sekundy na odpowiedź serwera. Jeśli nie otrzyma odpowiedzi, zakłada, że nadrzędny plik strategii nie istnieje. Nie istnieje jednak żadna domyślna wartość limitu czasu dla wywołania metody loadPolicyFile(); program Flash Player zakłada, że wywoływany plik istnieje, i oczekuje tak długo, jak to tylko potrzebne, w celu jego załadowania. Stąd, aby upewnić się, że nadrzędny plik strategii został załadowany, należy użyć metody loadPolicyFile() w celu wywołania go w sposób jawny.

Nie można połączyć się z portem, który zazwyczaj jest zastrzeżony. Pełną listę zablokowanych portów zawiera sekcja „Ograniczanie sieciowych interfejsów API” w publikacji ActionScript 3.0 — podręcznik dla programistów.

Za pomocą protokołu xmlsocket oraz określonego numeru portu można pobierać pliki reguł bezpośrednio z serwera XMLSocket, co przedstawia poniższy przykład. Połączenia z gniazdami nie podlegają opisanym powyżej ograniczeniom wynikającym z blokowania portów.

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

Dzięki temu program Flash Player lub AIR podejmuje próbę pobrania pliku strategii z określonego hosta lub portu. Po nawiązaniu połączenia z określonym portem program Flash Player lub AIR przesyła żądanie <policy-file-request /> zakończone bajtem null. Serwer musi wysłać bajt null w celu zakończenia pliku strategii, a następnie może zamknąć połączenie; jeśli serwer nie zamknie połączenia, program Flash Player lub AIR zamknie je po odebraniu kończącego bajtu null.

Można zapobiec korzystaniu z tej metody przez plik SWF, ustawiając parametr allowNetworking znaczników object i embed na stronie HTML, która zawiera treść SWF.

Więcej informacji na temat zabezpieczeń zawiera odpowiedni temat w Centrum programistów programu Flash Player w kategorii Bezpieczeństwo.

Parametry

url:String — Adres URL pliku reguł przeznaczonego do załadowania.

showSettings

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

Wersja języka: ActionScript 3.0
Wersje środowiska wykonawczego: AIR 1.0, Flash Player 9, Flash Lite 4

Powoduje, że w programie Flash Player jest wyświetlany panel ustawień zabezpieczeń. Ta metoda nie ma zastosowania do zawartości w programie Adobe AIR; wywołanie jej w aplikacji nie przynosi żadnego rezultatu.

Parametry

panel:String (default = "default") — Wartość z klasy SecurityPanel określająca, panel ustawień zabezpieczeń, który ma zostać wyświetlony. W przypadku ominięcia tego parametru zostanie użyty parametr SecurityPanel.DEFAULT.

Powiązane elementy interfejsu API

Szczegół stałej

APPLICATION

Stała
public static const APPLICATION:String = "application"

Wersja języka: ActionScript 3.0
Wersje środowiska wykonawczego: AIR 1.0, Flash Lite 4

Plik działa w aplikacji AIR i został zainstalowany z pakietem (plik AIR) dla tej aplikacji. Ta zawartość jest uwzględniana w katalogu zasobów aplikacji AIR (w którym została zainstalowana zawartość aplikacji).

Powiązane elementy interfejsu API

LOCAL_TRUSTED

Stała 
public static const LOCAL_TRUSTED:String = "localTrusted"

Wersja języka: ActionScript 3.0
Wersje środowiska wykonawczego: AIR 1.0, Flash Player 9, Flash Lite 4

Plik jest plikiem lokalnym, a użytkownik nadał mu status pliku zaufanego (za pomocą Menedżera ustawień programu Flash Player lub pliku konfiguracyjnego FlashPlayerTrust). Plik może odczytywać lokalne źródła danych i może komunikować się z Internetem.

Powiązane elementy interfejsu API

LOCAL_WITH_FILE

Stała 
public static const LOCAL_WITH_FILE:String = "localWithFile"

Wersja języka: ActionScript 3.0
Wersje środowiska wykonawczego: AIR 1.0, Flash Player 9, Flash Lite 4

Plik jest plikiem lokalnym, nie został zaakceptowany przez użytkownika jako plik zaufany i nie jest to plik SWF, który został opublikowany w sieci. W programie Adobe AIR plik lokalny nie znajduje się w katalogu zasobów aplikacji; takie pliki są umieszczane w obszarze izolowanym aplikacji. Plik może odczytywać lokalne źródła danych, ale nie może komunikować się z Internetem.

Powiązane elementy interfejsu API

LOCAL_WITH_NETWORK

Stała 
public static const LOCAL_WITH_NETWORK:String = "localWithNetwork"

Wersja języka: ActionScript 3.0
Wersje środowiska wykonawczego: AIR 1.0, Flash Player 9, Flash Lite 4

Plik jest plikiem lokalnym, nie został zaakceptowany przez użytkownika jako plik zaufany i jest to plik SWF, który został opublikowany w sieci. Plik może komunikować się z Internetem, ale nie może czytać z lokalnych źródeł danych.

Powiązane elementy interfejsu API

REMOTE

Stała 
public static const REMOTE:String = "remote"

Wersja języka: ActionScript 3.0
Wersje środowiska wykonawczego: AIR 1.0, Flash Player 9, Flash Lite 4

Plik pochodzi z Internetu i jest kontrolowany za pomocą domenowych reguł obszaru izolowanego.

Powiązane elementy interfejsu API

SecurityExample.as

Poniższy przykład przedstawia wykorzystanie zdarzenia click obiektu Sprite w celu wyświetlenia panelu ustawień magazynu lokalnego, który jest dostępny w obszarze ustawień programu Flash Player. Za pomocą metody draw() na stole montażowym zostało umieszczone pomarańczowe pole. Do metody draw() został dodany detektor zdarzenia click o nazwie clickHandler(), który odpowiada na zdarzenia click sterując programem Flash Player w taki sopsób, aby otworzyć panel ustawień magazynu lokalnego.
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 ]Dlaczego język angielski?
Treść dokumentacji języka ActionScript 3.0 wyświetlana w języku angielskim

Niektóre części dokumentacji języka ActionScript 3.0 nie są przetłumaczone na poszczególne języki. Gdy element nie jest przetłumaczony na dany język, jest wyświetlany tekst angielski. Na przykład opis klasy ga.controls.HelpBox nie jest przetłumaczony na żaden dodatkowy język. Z tego powodu polska wersja dokumentacji zawiera opis klasy ga.controls.HelpBox w języku angielskim.