Guide de référence ActionScript® 3.0 pour la plate-forme Adobe® Flash®
Accueil  |  Masquer la liste des packages et des classes |  Packages  |  Classes  |  Nouveautés  |  Index  |  Annexes  |  Pourquoi existe-t-il du contenu en anglais ?
Filtres : AIR 30.0 et versions antérieures, Flash Player 30.0 et versions antérieures, Flash Lite 4
Flex 4.6 et versions antérieures, Flash Pro CS6 et versions antérieures
Masquer les filtres
flash.system 

Security  - AS3

Packagesx

Niveau supérieur
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

Eléments du langage

Constantes globales
Fonctions globales
Opérateurs
Instructions, mots clés et directives
Types spéciaux

Annexes

Nouveautés
Erreurs de compilation
Avertissements du compilateur
Erreurs d’exécution
Migration vers ActionScript 3
Jeux de caractères pris en charge
Balises MXML uniquement
Eléments XML de mouvement
Balises Timed Text
Liste des éléments déconseillés
Constantes d’implémentation d’accessibilité
Utilisation des exemples de code ActionScript
Informations juridiques
Packageflash.system
Classepublic final class Security
HéritageSecurity Inheritance Object

Version du langage: ActionScript 3.0
Versions du moteur d’exécution: AIR 1.0, Flash Player 9, Flash Lite 4

La classe Security permet de spécifier la façon dont le contenu peut communiquer dans différents domaines.

Consulter les exemples



Propriétés publiques
 PropriétéDéfini par
 Inheritedconstructor : Object
Référence à l’objet de classe ou à la fonction constructeur d’une occurrence donnée d’un objet.
Object
  exactSettings : Boolean
[statique] Détermine la façon dont Flash Player ou AIR sélectionne le domaine à utiliser pour certains paramètres de contenu, ce qui couvre les autorisations relatives à la caméra et au microphone, les quotas de stockage et le stockage d’objets persistants partagés.
Security
  pageDomain : String
[statique] [lecture seule] Partie du domaine de la page HTML contenant le fichier swf.
Security
  sandboxType : String
[statique] [lecture seule] Indique le type de sandbox de sécurité dans lequel fonctionne le fichier appelant.
Security
Méthodes publiques
 MéthodeDéfini par
  
[statique] Permet aux fichiers SWF figurant dans les domaines identifiés d’accéder aux objets et aux variables du fichier SWF qui contient l’appel à allowDomain().
Security
  
[statique] Permet aux fichiers SWF et HTML appartenant aux domaines identifiés d’accéder aux objets et variables du fichier SWF effectuant l’appel, hébergé à l’aide du protocole HTTPS.
Security
 Inherited
Indique si la propriété spécifiée d’un objet est définie.
Object
 Inherited
Indique si une occurrence de la classe Object figure dans la chaîne de prototype de l’objet spécifié en tant que paramètre.
Object
  
[statique] Recherche un fichier de régulation à l’emplacement spécifié par le paramètre url.
Security
 Inherited
Indique si la propriété spécifiée existe et est énumérable.
Object
 Inherited
Définit la disponibilité d’une propriété dynamique pour les opérations en boucle.
Object
  
showSettings(panel:String = "default"):void
[statique] Affiche le panneau Paramètres de sécurité de Flash Player.
Security
 Inherited
Renvoie la représentation de chaîne de cet objet, formatée selon les paramètres régionaux en vigueur.
Object
 Inherited
Renvoie la représentation sous forme de chaîne de l’objet spécifié.
Object
 Inherited
Renvoie la valeur primitive de l’objet spécifié.
Object
Constantes publiques
 ConstanteDéfini par
  APPLICATION : String = "application"
[statique] Le fichier est exécuté dans une application AIR, et a été installé avec le package (le fichier AIR) pour cette application.
Security
  LOCAL_TRUSTED : String = "localTrusted"
[statique] Ce fichier est un fichier local qui a été approuvé par l’utilisateur en utilisant soit le gestionnaire de paramètres de Flash Player, soit un fichier de configuration FlashPlayerTrust.
Security
  LOCAL_WITH_FILE : String = "localWithFile"
[statique] Le fichier est un fichier local qui n’a pas été approuvé par l’utilisateur, et il ne s’agit pas d’un fichier SWF publié avec une désignation de mise en réseau.
Security
  LOCAL_WITH_NETWORK : String = "localWithNetwork"
[statique] Le fichier est un fichier local qui n’a pas été approuvé par l’utilisateur, et il s’agit d’un fichier SWF publié avec une désignation de mise en réseau.
Security
  REMOTE : String = "remote"
[statique] Ce fichier provient d’une URL et fonctionne selon les règles basées sur le domaine du sandbox.
Security
Détails de la propriété

exactSettings

propriété
exactSettings:Boolean

Version du langage: ActionScript 3.0
Versions du moteur d’exécution: AIR 1.0, Flash Player 9, Flash Lite 4

Détermine la façon dont Flash Player ou AIR sélectionne le domaine à utiliser pour certains paramètres de contenu, ce qui couvre les autorisations relatives à la caméra et au microphone, les quotas de stockage et le stockage d’objets persistants partagés. Afin que le fichier SWF utilise les mêmes paramètres que dans Flash Player 6, définissez exactSettings sur false.

Dans Flash Player 6, le domaine utilisé pour ces paramètres de lecteur était basé sur la partie finale du domaine du fichier SWF. Lorsque le domaine d’un fichier SWF inclut plus de deux segments, tels que www.exemple.com, le premier segment du domaine (« www ») est supprimé et la partie restante du domaine est utilisée : exemple.com. Ainsi, dans Flash Player 6, www.exemple.com et magasin.exemple.com ont en commun le domaine « example.com » pour ces paramètres. de même, www.exemple.co.fr et magasin.exemple.co.fr ont tous les deux recours au domaine exemple.co.fr pour ces paramètres. A compter de Flash Player 7, les paramètres du lecteur sont choisis par défaut en fonction d’un domaine exact de fichier SWF. Par exemple, le fichier SWF de www.exemple.com applique les paramètres du lecteur pour www.exemple.com, et le fichier SWF de magasin.exemple.com utiliserait des paramètres différents pour magasin.exemple.com.

Lorsque la propriété Security.exactSettings est définie sur true, Flash Player ou AIR a recours à des domaines exacts pour les paramètres du lecteur. La valeur par défaut de la propriété exactSettings est false. Si vous modifiez la valeur par défaut de la propriété exactSettings, faites-le avant que tout événement impliquant la sélection de paramètres de la part de Flash ou d’AIR ne se produise, tel que l’utilisation d’une caméra ou d’un microphone, ou l’extraction d’un objet partagé persistant.

Si vous avez déjà publié un fichier SWF de version 6 et créé des objets persistants à partir de ce dernier, et si vous devez extraire ces objets partagés persistants à partir de ce fichier SWF après l’avoir porté vers la version 7 ou plus récente (ou à partir d’un autre fichier SWF de version 7 ou plus récente), vous devez définir Security.exactSettings sur false avant d’appeler SharedObject.getLocal().



Implémentation
    public static function get exactSettings():Boolean
    public static function set exactSettings(value:Boolean):void

Valeur émise
SecurityError — Flash Player ou AIR a déjà utilisé la valeur de exactSettings au moins une fois pour déterminer les paramètres du lecteur.

pageDomain

propriété 
pageDomain:String  [lecture seule]

Version du langage: ActionScript 3.0
Versions du moteur d’exécution: Flash Player 10.3, AIR 2.7

Partie du domaine de la page HTML contenant le fichier swf.

Pour des raisons de sécurité, la méthode ne renvoie pas l’adresse URL complète, mais uniquement le domaine de la page, notamment http://www.exemple.com. Si ce fichier SWF n’est pas contenu dans une page HTML ou n’est pas en mesure d’accéder au domaine de page pour des raisons de sécurité, cette propriété renvoie la chaîne undefined.



Implémentation
    public static function get pageDomain():String

sandboxType

propriété 
sandboxType:String  [lecture seule]

Version du langage: ActionScript 3.0
Versions du moteur d’exécution: AIR 1.0, Flash Player 9, Flash Lite 4

Indique le type de sandbox de sécurité dans lequel fonctionne le fichier appelant.

Security.sandboxType a l’une des valeurs suivantes :

  • remote (Security.REMOTE) —  Ce fichier provient d’une URL Internet et fonctionne selon des règles de sandbox basées sur le domaine.
  • localWithFile (Security.LOCAL_WITH_FILE) — Ce fichier est un fichier local qui n’a pas été approuvé par l’utilisateur, et il ne s’agit pas d’un fichier SWF publié avec une désignation de mise en réseau. Ce fichier peut lire à partir de sources locales de données mais ne peut pas communiquer avec Internet.
  • localWithNetwork (Security.LOCAL_WITH_NETWORK) — Ce fichier SWF est un fichier local qui n’a pas été approuvé par l’utilisateur, et a été publié avec la désignation de mise en réseau. Le fichier SWF peut communiquer sur Internet mais ne peut pas lire à partir de sources de données locales.
  • localTrusted (Security.LOCAL_TRUSTED) — Ce fichier est un fichier local qui a été approuvé par l’utilisateur en utilisant soit le gestionnaire de paramètres de Flash Player, soit un fichier de configuration FlashPlayerTrust. Ce fichier peut aussi bien lire à partir de sources locales de données que communiquer avec Internet.
  • application (Security.APPLICATION) — Ce fichier est exécuté dans une application AIR, et a été installé avec le package (le fichier AIR) pour cette application. Par défaut, les fichiers dans le sandbox de sécurité de l’application AIR peuvent effectuer la programmation croisée de n’importe quel fichier issu de n’importe quel domaine (alors que les fichiers situés en dehors du sandbox de sécurité de l’application AIR peuvent ne pas être autorisés à effectuer la programmation croisée du fichier AIR). Par défaut, les fichiers du sandbox de sécurité de l’application AIR peuvent charger le contenu et les données de n’importe quel domaine.

Pour plus d’informations concernant la sécurité, voir la rubrique du Pôle de développement Flash Player : Sécurité (disponible en anglais uniquement).



Implémentation
    public static function get sandboxType():String

Plus d’exemples

Eléments de l’API associés

Détails de la méthode

allowDomain

()méthode
public static function allowDomain(... domains):void

Version du langage: ActionScript 3.0
Versions du moteur d’exécution: AIR 1.0, Flash Player 9, Flash Lite 4

Permet aux fichiers SWF figurant dans les domaines identifiés d’accéder aux objets et aux variables du fichier SWF qui contient l’appel à allowDomain().

Remarque : l’appel de cette méthode depuis le code dans le sandbox de l’application AIR émet une exception SecurityError. Le contenu situé hors du domaine de sécurité de l’application ne peut pas effectuer la programmation croisée du contenu dans le sandbox de l’application. Toutefois, le contenu situé hors du sandbox de l’application peut communiquer avec le contenu du sandbox de sécurité de l’application par un pont sandbox.

Si deux fichiers SWF sont servis à partir du même domaine, par exemple, http://mysite.com/swfA.swf et http://mysite.com/swfB.swf, alors swfA.swf peut alors analyser et modifier les variables, les objets, les propriétés, les méthodes, etc. dans swfB.swf et swfB.swf peut faire la même chose pour swfA.swf. Ceci est appelé programmation entre plusieurs animations ou programmation croisée.

Si deux fichiers SWF sont servis à partir de domaines différents, par exemple, http://siteA.com/swfA.swf et http://siteB.com/siteB.swf, puis, par défaut, Flash Player n’autorise pas swfA.swf à créer un script pour swfB.swf, mais pas swfB.swf à créer un script pour swfA.swf. Un fichier SWF autorise les fichiers SWF provenant d’autres domaines en appelant Security.allowDomain(). Ceci s’appelle programmation de scripts interdomaines. En appelant Security.allowDomain("siteA.com"), siteB.swf autorise siteA.swf à créer un script le contrôlant.

Dans tout contexte interdomaines, il est important d’identifier clairement les parties impliquées. Dans le cadre de cette discussion, le côté procédant à la programmation croisée sera appelé partie procédant à l’accès (habituellement le fichier SWF procédant à l’accès) et l’autre côté sera appelé partie cible (généralement le fichier SWF cible). Lorsque siteA.swf crée un script contrôlant siteB.swf, siteA.swf est la partie qui procède à l’accès et siteB.swf la partie réceptrice.

Diagramme inter-domaines

Les autorisations interdomaines établies avec allowDomain() sont asymétriques. Dans l’exemple précédent, siteA.swf peut créer un script contrôlant siteB.swf, mais siteB.swf ne peut pas créer de script de contrôle de siteA.swf, car siteA.swf n’a pas appelé allowDomain() pour donner aux fichiers SWF de siteB.com l’autorisation de créer un script de contrôle. Vous pouvez définir des autorisations symétriques en faisant les deux fichiers SWF appeler allowDomain().

En dehors de la protection des fichiers SWF contre les scripts interdomaines provenant d’autres fichiers SWF, Flash Player protège également les fichiers SWF contre ce type de script provenant des fichiers HTML. La programmation HTML vers SWF peut se produire avec des fonctions anciennes du navigateur telles que SetVariable ou en appelant des fonctions de rappel établies avec ExternalInterface.addCallback(). Lorsque la programmation HTML vers SWF franchit les domaines, le SWF cible doit également appeler allowDomain(), comme s’il avait été appelé par un fichier SWF, faute de quoi l’opération échouera.

La spécification de l’adresse IP en tant que paramètre pour allowDomain() n’autorise pas l’accès de toutes les parties provenant de l’adresse IP spécifiée. Par contre, elle autorise l’accès uniquement par une partie qui contient l’adresse IP spécifiée dans son URL, et non pas un nom de domaine qui renvoie à cette adresse IP.

Différences liées à la version

Les règles de sécurité interdomaines de Flash Player ont évolué de version en version. Le tableau suivant récapitule les différences.

Versions SWF les plus récentes impliquées dans les opérations de programmation croiséeallowDomain() nécessaire ?allowInsecureDomain() nécessaire ?Quel fichier SWF doit appeler allowDomain() ou allowInsecureDomain() ?Qu’est-ce qui peut être spécifié dans allowDomain() ou allowInsecureDomain() ?
5 ou plus récenteNonNonS/OS/O
6Oui, si les super-domaines ne concordent pasNonLe fichier SWF en cours d’accès ou tout fichier SWF appartenant au même super-domaine que le fichier SWF en cours d’accès.
  • Domaine de type texte (monsite.com)
  • Adresse IP (192.168.1.1)
7Oui, si les domaines ne concordent pas exactementOui, en cas d’accès HTTP vers HTTPS (même si les domaines correspondent exactement)Le fichier SWF en cours d’accès ou tout fichier SWF appartenant exactement au même domaine que le fichier SWF en cours d’accès.
  • Domaine de type texte (monsite.com)
  • Adresse IP (192.168.1.1)
8 ou plus récenteOui, si les domaines ne concordent pas exactementOui, en cas d’accès HTTP vers HTTPS (même si les domaines correspondent exactement)Fichier SWF cible
  • Domaine de type texte (monsite.com)
  • Adresse IP (192.168.1.1)
  • Caractère générique (*)

Les versions qui contrôlent le comportement de Flash Player désignent les versions SWF (la version publiée d’un fichier SWF), non pas la version de Flash Player. Par exemple, lorsque Flash Player 8 lit un fichier SWF publié par la version 7, il applique un comportement compatible à la version 7. Cette pratique permet de garantir que les mises à jour du lecteur ne changent pas le comportement de Security.allowDomain() dans les fichiers SWF déployés.

La colonne Version du tableau précédent indique la version la plus récente des fichiers SWF lors des opérations de programmation croisée. Le comportement de Flash Player dépend de la version du fichier SWF procédant à l’accès ou du fichier SWF cible, en retenant la version supérieure.

Les paragraphes suivants fournissent de plus amples informations sur les modifications de sécurité de Flash Player impliquant Security.allowDomain().

Version 5. Il n’y a aucune restriction de programmation de scripts interdomaines.

Version 6. Des fonctions de sécurité contre la programmation interdomaines ont été introduites. Par défaut, Flash Player empêche la programmation interdomaines, tandis que Security.allowDomain() l’autorise. Pour déterminer si deux fichiers appartiennent au même domaine, Flash Player utilise le super-domaine de chaque fichier, qui correspond au nom d’hôte exact de l’URL du fichier, moins le premier segment, jusqu’à un minimum de deux segments. Par exemple, le super-domaine de www.mysite.com est mysite.com. Les fichiers SWF de www.mysite.com et store.mysite.com ne peuvent pas se contrôler mutuellement par script sans un appel à Security.allowDomain().

Version 7. Le filtrage de super-domaine est modifié pour obtenir la correspondance exacte des domaines. Deux fichiers ne peuvent se programmer que si les noms d’hôte figurant dans leurs URL sont identiques ; sinon vous devez effectuer un appel à Security.allowDomain(). Par défaut, les fichiers chargés à partir des URL qui ne sont pas de type HTTPS ne sont plus autorisés à programmer les fichiers chargés à partir des URL HTTPS, même si les fichiers sont chargés à partir d’un domaine rigoureusement identique. Cette restriction permet de protéger les fichiers HTTPS, car un fichier non HTTPS est susceptible d’être modifié sans téléchargement, et tout fichier non HTTPS modifié de façon illicite risque de corrompre un fichier HTTPS, qui serait normalement protégé contre ce type de modification. La méthode Security.allowInsecureDomain() a été introduite pour permettre aux fichiers SWF HTTPS en cours d’accès de désactiver de façon volontaire cette restriction. Néanmoins, l’utilisation de Security.allowInsecureDomain() est déconseillée.

Version 8. Il existe deux grands domaines de modification :

  • L’appel de Security.allowDomain() autorise désormais uniquement les opérations de programmation croisée où le fichier SWF cible correspond au fichier SWF qui a appelé Security.allowDomain(). En d’autres termes, tout fichier SWF qui appelle désormais Security.allowDomain() n’autorise que l’accès à lui-même. Dans des versions précédentes, l’appel de Security.allowDomain() autorisait les opérations de programmation croisée lorsque le fichier SWF cible appartenait au même domaine que le fichier SWF qui a appelé Security.allowDomain(). L’appel de Security.allowDomain() ouvrait auparavant l’ensemble du domaine du fichier SWF ayant procédé à l’appel.
  • Une prise en charge a été ajoutée pour les valeurs des caractères génériques avec Security.allowDomain("*") et Security.allowInsecureDomain("*"). La valeur caractère générique (*) autorise les opérations de programmation croisée quel que soit le fichier procédant à l’accès et quelle que soit l’origine de ce dernier. Le caractère générique sert alors d’autorisation globale. Des autorisations génériques sont requises pour activer certains types d’opérations respectant les règles de sécurité des fichiers locaux. De façon plus spécifique, pour qu’un fichier SWF local disposant d’autorisations d’accès réseau pour créer un script de contrôle de fichier SWF sur Internet, le fichier Internet SWF en cours d’accès doit appeler Security.allowDomain("*"), ce qui indique que l’origine du fichier SWF local est inconnue (si le fichier SWF Internet cible est chargé à partir d’une URL HTTPS, le fichier SWF Internet doit alors appeler Security.allowInsecureDomain("*")).

De façon exceptionnelle, la situation suivante peut se produire : vous chargez un fichier SWF enfant à partir d’un domaine différent et souhaitez lui permettre de créer un script sur le fichier SWF parent, mais vous ne connaissez pas le domaine final du fichier SWF enfant. Cela peut se produire, par exemple, lorsque vous utilisez des redirections d’équilibrage de charge ou des serveurs tiers.

Dans ce cas, vous pouvez utiliser la propriété url de l’objet URLRequest que vous transmettez à Loader.load(). Par exemple, si vous chargez un fichier SWF dans un fichier SWF parent, vous pouvez accéder à la propriété contentLoaderInfo de l’objet Loader pour le fichier SWF parent :

Security.allowDomain(loader.contentLoaderInfo.url)

Vous devez attendre le début du chargement du fichier SWF enfant pour obtenir la valeur correcte de la propriété url. Pour détecter le début du chargement du fichier SWF, exploite l’événement progress.

La situation opposée peut également se produire ; en effet, vous pouvez créer un fichier SWF enfant sur lequel son fichier parent pourra créer un script, mais qui ignore le domaine de celui-ci. Dans ce cas, vous pouvez accéder à la propriété loaderInfo de l’objet d’affichage qui correspond à l’objet racine du fichier SWF. Dans le fichier SWF enfant, appelez Security.allowDomain( this.root.loaderInfo.loaderURL). Il n’est pas nécessaire d’attendre la fin du chargement du fichier SWF parent ; le parent sera déjà chargé lorsque celui de l’enfant commencera.

Si vous procédez à la publication de Flash Player 8 ou une version ultérieure, vous pouvez également traiter ces situations en appelant Security.allowDomain("*"). Cependant, il peut parfois s’agir d’un raccourci dangereux, dans la mesure où il autorise tout autre fichier SWF, quel que soit le domaine de ce dernier, à accéder au fichier SWF procédant à l’appel. Il est généralement plus sûr d’utiliser la propriété _url.

Pour plus d’informations concernant la sécurité, voir la rubrique du Pôle de développement Flash Player : Sécurité (disponible en anglais uniquement).

Paramètres

... domains — Une ou plusieurs chaînes ou objets URLRequest qui nomment les domaines à partir desquels vous souhaitez autoriser l’accès. Vous pouvez spécifier le domaine spécial « * » pour autoriser l’accès à partir de tous les domaines.

Dans Flash Professional, la spécification de "*" constitue l’unique façon d’accéder aux fichiers SWF non locaux à partir des fichiers SWF locaux ayant été publiés à l’aide du paramètre Accès au réseau uniquement de l’option Sécurité de lecture locale dans l’outil de création de Flash.

Remarque : la valeur du caractère générique ne fonctionne pas pour les sous-domaines. Par exemple, vous ne pouvez pas utiliser *.foo.com pour les paramètres domains. Bien que vous puissiez spécifier un sous-domaine avec une valeur de caractère générique pour un fichier de régulation interdomaines (comme dans *.foo.com), vous ne pouvez pas utiliser une valeur de caractère générique de cette manière pour la méthode allowDomain().


Valeur émise
SecurityError — L’appel de cette méthode depuis le code dans le sandbox de sécurité de l’application AIR émet une exception SecurityError. Le contenu situé en dehors du sandbox de sécurité de l’application ne peut pas effectuer la programmation croisée du contenu du sandbox de sécurité de l’application.

Plus d’exemples

Eléments de l’API associés

allowInsecureDomain

()méthode 
public static function allowInsecureDomain(... domains):void

Version du langage: ActionScript 3.0
Versions du moteur d’exécution: AIR 1.0, Flash Player 9, Flash Lite 4

Permet aux fichiers SWF et HTML appartenant aux domaines identifiés d’accéder aux objets et variables du fichier SWF appelant, hébergé à l’aide du protocole HTTPS.

Flash Player offre la méthode allowInsecureDomain() pour plus de souplesse, même si l’appel de cette méthode n’est pas recommandé. La transmission d’un fichier par le protocole HTTPS offre plusieurs protections pour vous et vos utilisateurs. Le fait d’appeler allowInsecureDomain affaiblit l’une de ces protections.

Remarque : l’appel de cette méthode depuis le code dans le sandbox de l’application AIR émet une exception SecurityError. Le contenu situé hors du domaine de sécurité de l’application ne peut pas effectuer la programmation croisée du contenu dans le sandbox de l’application. Toutefois, le contenu situé hors du sandbox de l’application peut communiquer avec le contenu du sandbox de sécurité de l’application par un pont sandbox.

Cette méthode fonctionne de la même façon que Security.allowDomain(), mais elle autorise en outre des opérations où la partie qui procède à l’accès est chargée avec un protocole non HTTPS et la partie cible est chargée avec le protocole HTTPS. A partir de la version 7 de Flash Player, les fichiers non HTTPS ne sont pas autorisés à programmer les fichiers HTTPS. La méthode allowInsecureDomain() lève cette restriction lorsque le fichier SWF HTTPS cible l’utilise.

Utilisez allowInsecureDomain() uniquement pour activer la programmation des fichiers non HTTPS vers les fichiers HTTPS. Utilisez cette méthode pour activer le script lorsque le fichier non HTTPS qui procède à l’accès et le fichier HTTPS qui est accédé sont servis à partir du même domaine. Par exemple, si un fichier SWF sur http://mysite.com doit contrôler par script un fichier SWF sur https://mysite.com. N’utilisez pas cette méthode pour activer les scripts de contrôle entre des fichiers non HTTPS, entre fichiers HTTPS ou de fichiers HTTPS vers des fichiers non HTTPS. Dans ces situations, recourez plutôt à allowDomain().

Le scénario suivant illustre la façon dont la méthode allowInsecureDomain(), si elle n’est pas utilisée avec prudence, risque de compromettre la sécurité.

Tenez compte du fait que les informations suivantes constituent uniquement l’un des scénarios possibles et sont conçues pour vous aider à comprendre allowInsecureDomain() par l’intermédiaire d’un exemple réaliste de programmation croisée. Cet exemple ne couvre pas tous les problèmes relatifs à l’architecture de sécurité et doit être utilisé uniquement comme référence générale. Le Pôle de développement Flash Player contient des informations détaillées sur Flash Player et la sécurité. Pour plus d’informations, voir la rubrique du Pôle de développement Flash Player : Sécurité.

Supposons que vous deviez créer un site de commerce électronique qui comprend deux composants : un catalogue, qui ne doit pas nécessairement être sécurisé, dans la mesure où il contient uniquement des informations publiques ; et un composant panier/règlements, qui doit être sécurisé pour protéger les informations financières et personnelles des utilisateurs. Supposons que vous deviez servir le catalogue à partir de http://mysite.com/catalog.swf et le panier à partir de https://mysite.com/cart.swf. Le cahier des charges de votre site exige qu’aucun tiers ne puisse voler les numéros de carte de crédit de votre utilisateur en profitant des faiblesses de votre architecture de sécurité.

Imaginons qu’un intermédiaire malveillant tente d’intervenir entre le serveur et vos utilisateurs pour s’emparer des numéros de carte de crédit que vos utilisateurs pénètrent dans votre application de panier. L’intermédiaire, peut être un FAI peu scrupuleux, par exemple, ou un administrateur malveillant travaillant dans la même entreprise que certains utilisateurs, ou de façon plus générale, toute personne ayant la possibilité d’afficher ou modifier les paquets réseau transmis sans protection sur Internet, entre vos utilisateurs et vos serveurs. Cette situation n’est pas rare.

Si cart.swf utilise HTTPS pour transmettre les informations bancaires aux serveurs, l’intermédiaire ne peut pas voler directement ces informations en détournant les paquets réseau, dans la mesure où la transmission HTTPS est chiffrée. Cependant, l’attaquant utilise une autre technique : modifier le contenu de l’un de vos fichiers SWF pendant sa remise à l’utilisateur, en remplaçant le fichier SWF par une version modifiée qui détourne les informations relatives à l’utilisateur vers un autre serveur.

Le protocole HTTPS, entre autres, empêche l’application de cette « modification », dans la mesure où non seulement les transmissions HTTPS sont chiffrées mais encore protégées contre les modifications. Si un intermédiaire tente de modifier un paquet, le récepteur détecte la modification et refuse le paquet. Ainsi, l’attaquant ne peut pas modifier cart.swf, dans la mesure où il est transmis par l’intermédiaire du protocole HTTPS.

Supposons maintenant que vous souhaitiez autoriser les boutons dans catalog.swf, servi par le protocole HTTP, pour ajouter des éléments au panier dans cart.swf, servi par le protocole HTTPS. Pour accomplir ceci, cart.swf appelle allowInsecureDomain(), ce qui autorise catalog.swf à créer un script de contrôle pour cart.swf. Cette action entraîne une conséquence non intentionnelle : un attaquant pourrait modifier catalog.swf lorsqu’il est téléchargé par l’utilisateur, car catalog.swf est transmis avec le protocole HTTP et n’offre aucune protection contre les modifications. Le fichier catalog.swf modifié par l’attaquant peut désormais programmer cart.swf, dans la mesure où cart.swf contient un appel à allowInsecureDomain(). Le fichier catalog.swf modifié peut utiliser ActionScript pour accéder aux variables de cart.swf et lire ainsi les informations sur les cartes bancaires et autres données sensibles. Le fichier catalog.swf peut ensuite envoyer ces données au serveur d’un attaquant.

Naturellement, cette implémentation n’est pas souhaitable, mais vous devez autoriser la programmation croisée entre les deux fichiers SWF de votre site. Voici deux façons de changer la conception de ce site virtuel d’e-commerce afin d’éviter allowInsecureDomain() :

  • Servez tous les fichiers SWF de l’application avec le protocole HTTPS. Il s’agit de la solution la plus simple et la plus fiable. Dans le scénario décrit, vous pouvez servir les fichiers catalog.swf et cart.swf par l’intermédiaire du protocole HTTPS. Vous risquez de consommer un peu plus de bande passante et d’augmenter la charge du processeur du serveur en faisant basculer un fichier tel que catalog.swf du protocole HTTP au protocole HTTPS, ce qui se traduira par une légère augmentation du temps de chargement des applications au niveau de l’utilisateur. Vous devez faire des essais avec des serveurs réels pour déterminer la gravité de ces effets. De manière générale, elle reste cantonnée entre 10 et 20 % et est parfois totalement absente. Vous pouvez généralement améliorer les résultats avec du matériel et des logiciels d’accélération HTTPS sur vos serveurs. L’un des principaux avantage de l’application du protocole HTTPS aux fichiers SWF qui doivent coopérer est que vous pouvez utiliser une URL HTTPS en tant qu’URL principale dans le navigateur de l’utilisateur sans générer d’avertissements de contenu mixtes à partir du navigateur. En outre, l’icône en forme de cadenas devient visible dans le navigateur, ce qui permet d’offrir aux utilisateurs un indicateur de sécurité reconnu.
  • Utilisez la programmation HTTPS vers HTTP, et non pas HTTP vers HTTPS. Dans le scénario proposé, vous pouvez stocker le contenu du panier de l’utilisateur dans catalog.swf, puis utiliser cart.swf pour gérer le processus de règlement. Lors du règlement, cart.swf pourrait extraire le contenu du panier à partir des variables ActionScript de catalog.swf. La restriction concernant les scripts HTTP vers HTTPS est asymétrique, bien qu’un fichier catalog.swf livré par le protocole HTTP ne puisse pas être autorisé à contrôler par script un fichier cart.swf livré par HTTPS, le fichier cart.swf HTTPS peut créer un script de contrôle du fichier catalog.swf HTTP. Cette approche est plus délicate que l’approche intégralement HTTPS ; vous ne devez pas faire confiance aux fichiers SWF transmis avec le protocole HTTP, qui n’est pas protégé contre les modifications. Par exemple, lorsque cart.swf extrait la variable ActionScript qui décrit le contenu du panier, le code ActionScript de cart.swf ne peut pas être certain que la valeur de cette variable est au format attendu. Vous devez vous assurer que le panier ne contient pas de données non valides qui risquent d’entraîner une action imprévue de cart.swf. Vous devez également accepter le risque qu’un intermédiaire, en modifiant catalog.swf, fournisse des données valides mais inexactes à cart.swf, par exemple en plaçant des éléments dans le caddie de l’utilisateur. La procédure normale de règlement permet d’atténuer ce risque, sans toutefois l’écarter totalement, en affichant le contenu du caddie et le montant total pour approbation par l’utilisateur.

Les navigateurs Web appliquent la séparation des fichiers HTTPS et non HTTPS depuis de nombreuses années et le scénario ci-dessus illustre l’utilité de cette restriction. Flash Player permet de contourner cette restriction de sécurité lorsque c’est strictement nécessaire, mais analysez les conséquences avant d’y procéder.

Pour plus d’informations concernant la sécurité, voir la rubrique du Pôle de développement Flash Player : Sécurité (disponible en anglais uniquement).

Paramètres

... domains — Une ou plusieurs chaînes ou objets URLRequest qui nomment les domaines à partir desquels vous souhaitez autoriser l’accès. Vous pouvez spécifier le domaine spécial « * » pour autoriser l’accès à partir de tous les domaines.

La spécification de « * » constitue la seule façon d’accéder aux fichiers SWF non locaux à partir des fichiers SWF locaux qui ont été publiés à l’aide du paramètre Accès au réseau uniquement pour l’option Sécurité de lecture locale (Fichier > Paramètres de publication > onglet Flash) dans l’outil de création de Flash.

Remarque : la valeur du caractère générique ne fonctionne pas pour les sous-domaines. Par exemple, vous ne pouvez pas utiliser *.foo.com pour les paramètres domains. Bien que vous puissiez spécifier un sous-domaine avec une valeur de caractère générique pour un fichier de régulation interdomaines (comme dans *.foo.com), vous ne pouvez pas utiliser une valeur de caractère générique de cette manière pour la méthode allowInsecureDomain().


Valeur émise
SecurityError — L’appel de cette méthode depuis le code dans le sandbox de sécurité de l’application AIR renvoie une exception SecurityError. Le contenu situé en dehors du sandbox de sécurité de l’application ne peut pas effectuer la programmation croisée du contenu du sandbox de sécurité de l’application.

Eléments de l’API associés

loadPolicyFile

()méthode 
public static function loadPolicyFile(url:String):void

Version du langage: ActionScript 3.0
Versions du moteur d’exécution: AIR 1.0, Flash Player 9, Flash Lite 4

Recherche un fichier de régulation à l’emplacement spécifié par le paramètre url. Adobe AIR et Flash Player utilisent des fichiers de régulation pour déterminer s’ils autorisent des applications à charger des données depuis des serveurs autres que celui sur lequel elles se trouvent. Notez que même si la méthode se nomme loadPolicyFile(), le fichier n’est pas chargé tant qu’une requête réseau impliquant un fichier de régulation n’est pas créée.

Avec Security.loadPolicyFile(), Flash Player ou AIR peut charger les fichiers de régulation à partir d’emplacements aléatoires, comme l’illustre l’exemple suivant :

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

De cette manière, Flash Player ou AIR tente de récupérer un fichier de régulation à partir de l’URL spécifiée. Les autorisations accordées par l’intermédiaire du fichier de régulation s’appliquent à l’ensemble du contenu, au même niveau ou à un niveau inférieur dans la hiérarchie virtuelle des répertoires du serveur.

Par exemple, selon le code précédent, ces lignes ne renvoient pas d’exception :

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

Par contre, le code suivant renvoie une exception de sécurité :

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

Vous pouvez utiliser loadPolicyFile() pour charger un nombre illimité de fichiers de régulation. Dans le cas d’une requête impliquant un fichier de régulation, Flash Player ou AIR attend que le téléchargement des fichiers de régulation soit terminé avant de rejeter une requête. En dernier recours, si aucun des fichiers de régulation spécifiés par loadPolicyFile() n’autorise la requête, Flash Player ou AIR consulte les emplacements d’origine par défaut.

Lorsqu’il recherche un fichier de régulation maître,. Flash Player attend une réponse du serveur pendant trois secondes. En l’absence d’une réponse, l’application considère qu’il n’existe pas de fichier de régulation maître. Toutefois, si aucune valeur de dépassement de délai par défaut est définie pour les appels à loadPolicyFile(), Flash Player suppose que le fichier appelé existe et attend aussi longtemps que nécessaire pour le charger. Pour avoir la certitude qu’un fichier de régulation maître est chargé, appelez-le donc explicitement par le biais de loadPolicyFile().

Vous ne pouvez pas vous connecter aux ports généralement réservés. Pour obtenir une liste complète des ports bloqués, voir la rubrique « Restriction des API de réseau » dans le Guide du développeur d’ActionScript 3.0.

L’utilisation du protocole xmlsocket avec un numéro de port spécifique permet de récupérer directement les fichiers de régulation depuis un serveur XMLSocket, comme l’illustre l’exemple suivant : Les connexions de socket ne sont pas soumises aux restrictions de ports réservés décrites ci-dessus.

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

De cette manière, Flash Player ou AIR peut récupérer un fichier de régulation au niveau du port et de l’hôte spécifiés. Lors de la connexion au port spécifié, Flash Player ou AIR transmet <policy-file-request />, suivi d’un octet de terminaison null. Le serveur doit renvoyer un octet null à la fin du fichier de régulation avant de fermer la connexion. Si le serveur ne ferme pas la connexion, Flash Player ou AIR y met fin après avoir reçu l’octet de terminaison null.

Vous pouvez éviter qu’un fichier SWF utilise cette méthode en définissant le paramètre allowNetworking des balises object et embed dans la page HTML qui héberge le contenu SWF.

Pour plus d’informations concernant la sécurité, voir la rubrique du Pôle de développement Flash Player : Sécurité (disponible en anglais uniquement).

Paramètres

url:String — Emplacement de l’URL du fichier de régulation à charger.

Plus d’exemples

showSettings

()méthode 
public static function showSettings(panel:String = "default"):void

Version du langage: ActionScript 3.0
Versions du moteur d’exécution: AIR 1.0, Flash Player 9, Flash Lite 4

Affiche le panneau Paramètres de sécurité de Flash Player. Cette méthode ne s’applique pas au contenu dans Adobe AIR ; son appel dans une application AIR n’a aucun effet.

Paramètres

panel:String (default = "default") — Une valeur de la classe SecurityPanel qui permet de spécifier le panneau Paramètres de sécurité à afficher. Si vous omettez ce paramètre, SecurityPanel.DEFAULT est utilisé.

Eléments de l’API associés

Détails de la constante

APPLICATION

Constante
public static const APPLICATION:String = "application"

Version du langage: ActionScript 3.0
Versions du moteur d’exécution: AIR 1.0, Flash Lite 4

Le fichier est exécuté dans une application AIR, et a été installé avec le package (le fichier AIR) pour cette application. Ce contenu est inclus dans le répertoire des ressources de l’application AIR (où le contenu de l’application est installé).

Eléments de l’API associés

LOCAL_TRUSTED

Constante 
public static const LOCAL_TRUSTED:String = "localTrusted"

Version du langage: ActionScript 3.0
Versions du moteur d’exécution: AIR 1.0, Flash Player 9, Flash Lite 4

Ce fichier est un fichier local qui a été approuvé par l’utilisateur en utilisant soit le gestionnaire de paramètres de Flash Player, soit un fichier de configuration FlashPlayerTrust. Ce fichier peut aussi bien lire à partir de sources locales de données que communiquer avec Internet.

Eléments de l’API associés

LOCAL_WITH_FILE

Constante 
public static const LOCAL_WITH_FILE:String = "localWithFile"

Version du langage: ActionScript 3.0
Versions du moteur d’exécution: AIR 1.0, Flash Player 9, Flash Lite 4

Le fichier est un fichier local qui n’a pas été approuvé par l’utilisateur, et il ne s’agit pas d’un fichier SWF publié avec une désignation de mise en réseau. Dans Adobe AIR, le fichier local n’est pas dans le répertoire des ressources de l’application ; ce type de fichier est placé dans le sandbox de sécurité de l’application. Ce fichier peut lire à partir de sources locales de données mais ne peut pas communiquer avec Internet.

Eléments de l’API associés

LOCAL_WITH_NETWORK

Constante 
public static const LOCAL_WITH_NETWORK:String = "localWithNetwork"

Version du langage: ActionScript 3.0
Versions du moteur d’exécution: AIR 1.0, Flash Player 9, Flash Lite 4

Le fichier est un fichier local qui n’a pas été approuvé par l’utilisateur, et il s’agit d’un fichier SWF publié avec une désignation de mise en réseau. Le fichier peut communiquer sur Internet mais ne peut pas lire à partir de sources de données locales.

Eléments de l’API associés

REMOTE

Constante 
public static const REMOTE:String = "remote"

Version du langage: ActionScript 3.0
Versions du moteur d’exécution: AIR 1.0, Flash Player 9, Flash Lite 4

Ce fichier provient d’une URL et fonctionne selon les règles basées sur le domaine du sandbox.

Eléments de l’API associés

SecurityExample.as

L’exemple suivant indique comment un événement click sur un objet Sprite permet d’afficher le panneau des paramètres de stockage local de la boîte de dialogue Paramètres de Flash Player. Un cadre orange est ajouté à la scène à l’aide de la méthode draw(). Dans draw(), un écouteur de l’événement click est ajouté sous le nom clickHandler(). Il répond aux événements click en ouvrant le panneau des paramètres de stockage local de Flash Player.
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 ]Pourquoi existe-t-il du contenu en anglais ?
Certaines parties du Guide de référence ActionScript 3.0 sont en anglais

Tout le contenu du Guide de référence ActionScript 3.0 n’a pas été traduit dans toutes les langues. Si un élément de langage n’est pas traduit, il s’affiche en anglais. Par exemple, la classe ga.controls.HelpBox n’est traduite dans aucune langue. Ainsi, dans la version française du guide de référence, la classe ga.controls.HelpBox apparaît en anglais.