===== Secure - Détail de la fonction =====
=== En résumé : ===
Spécifie les politiques de sécurité (niveaux d'accès et répertoires.)
Retourne les réglages antérieurs.
=== Utilisation : ===
secure level
=== Argument : ===
level - Les niveaux sont: quit, throw, ask, allow (quitte, rejette, demande,
autorise.) Le mot query retournera les précédents réglages. (type: word! block!)
=== Description : ===
Cette fonction contrôle l'accès fichiers et réseau. Elle utilise un
dialecte pour spécifier des "sandboxes" ("bacs à sable") de sécurité qui
autorisent ou refusent l'accès. Vous pouvez affecter différents niveaux
de sécurité et de multiples sandboxes aux opérations réseaux, aux fichiers,
et à des fichiers et répertoires spécifiques.
L'argument de la fonction SECURE peut être un mot ou un bloc.
Si vous fournissez un mot, le niveau global de sécurité est défini
pour tous les accès. Si vous fournissez un bloc, vous pouvez
spécifier une sécurité différente pour les fichiers, les répertoires,
et le réseau.
Par exemple, si vous écrivez:
secure ask
il sera demandé la permission de l'utilisateur pour tous les
accès fichiers et réseau. Mais si vous fournissez un bloc en
argument:
secure [
net quit
file ask
%./ allow
]
vous désactiverez l'accès réseau (qui fera sortir en cas de tentative,)
mais demandez l'autorisation de l'utilisateur pour tous les accès fichiers,
excepté le répertoire local (qui sera autorisé.)
Comme vous pouvez le voir, le dialecte de sécurité consiste en un bloc de
paires de valeurs. La première valeur de la paire spécifie ce qui est
sécurisé (fichier ou réseau,) et la seconde spécifie le niveau de
sécurité (allow, ask, throw, quit) (autorise, demande, rejette, quitte.) La
seconde valeur peut aussi être un bloc, afin de préciser la sécurité en
lecture et en écriture.
Les niveaux de sécurité sont:
ALLOW (autorise) - retire toutes les restrictions READ (lecture) et/ou WRITE (écriture.)
ASK (demande) - restreint les accès READ et/ou WRITE et avertit l'utilisateur de chaque tentative d'accès, demandant son approbation avant d'effectuer l'opération.
THROW (rejette) - refuse les accès READ et/ou WRITE, générant une erreur quand une tentative d'accès est faite.
QUIT - refuse les accès READ et/ou WRITE et quitte le script quand l'accès interdit est tenté.
Par exemple, pour autoriser tous les accès réseau, mais pour quitter sur
n'importe quel accès fichier:
secure [
net allow ;autorise tous les accès réseau
file quit ;n'importe quel accès fichier fera quitter le programme
]
Si un bloc est utilisé à la place d'un mot-clef de niveau de sécurité, il peut
contenir des paires de niveaux de sécurité et de type d'accès. Ceci vous
permet de spécifier un niveau de détail plus grand sur la sécurité requise.
Les types d'accès autorisés sont:
READ (lecture) - contrôle l'accès en lecture.
WRITE (écriture) - contrôle l'accès en écriture, en effacement, et en changement de nom.
EXECUTE (exécution) - contrôle l'accès en exécution.
ALL (tous) - contrôle tous les accès.
Les paires sont traitées dans l'ordre qu'elles apparaissent, avec
les dernières paires modifiant l'effet des paires précédentes. Ceci
permet de définir un type d'accès sans définir explicitement tous
les autres. Par exemple:
secure [
net allow
file [
ask all
allow read
quit execute
]
]
Le code ci-dessus définit comme niveau de sécurité de
demander pour toutes les opérations excepté la lecture
(qui est autorisée.)
Cette technique peut aussi être utilisée pour des fichiers
et des répertoires individuels. Par exemple:
secure [
net allow
file quit
%source/ [ask read]
%object/ [allow all]
]
demandera l'autorisation à l'utilisateur si une tentative est
faite de lire le répertoire %source, mais autorisera toutes
les opérations sur le dossier %object. Sinon, la sécurité
par défaut est utilisée (quit.)
Si aucun niveau de sécurité est spécifié pour l'accès réseau
ou fichier, le comportement par défaut est ASK (demander.)
Les réglages courants ne sont pas modifiés si une erreur se
produit durant l'analyse du bloc des sécurités donné en
argument.
La fonction SECURE retourne les réglages antérieurs au
nouveaux. C'est un bloc comprenant les attributs réseau et fichier
globaux suivis des réglages fichiers et dossiers. Le mot QUERY
(requête) peut être utilisé pour obtenir les paramètres de sécurité
actuels sans les modifier:
probe secure query
[net allow library allow shell allow file allow]
En utilisant QUERY, vous pouvez modifier le niveau courant
de sécurité en demandant les réglages actuels, les modifiant,
puis en utilisant la fonction secure pour attribuer les nouvelles
valeurs.
Notez que diminuer le niveau de sécurité produit une requête de
changement de niveau de sécurité pour l'utilisateur. L'exception
est que lorsque la session REBOL tourne en mode silencieux
(quiet mode,) la session sera, à la place, terminée. Pas de requête
n'est faite quand les niveaux de sécurité sont augmentés. Notez
que la requête de sécurité comprend une options pour autoriser
tous les accès pour le reste du déroulement des scripts.
Lorsque vous lancez REBOL, l'argument -s peut être
fourni sur la ligne de commande pour spécifier comme
niveau initial de sécurité:
secure allow
L'argument +s spécifiera:
secure quit
Vous pouvez aussi utiliser l'argument %%--%%secure pour définir
n'importe quel niveau de sécurité au démarrage de REBOL.
=== Fonctions en relation : ===
[[Articles:dicorebol-fr:open]] - Ouvre une nouvelle connexion sur un port.
[[Articles:dicorebol-fr:read]] - Lit depuis un fichier, une url ou le port spécifié (bloc ou objet).
[[Articles:dicorebol-fr:write]] - Ecrit dans un fichier, une url, ou le port spécifié (bloc ou objet).
=== Version anglaise officielle : ===
http://www.rebol.com/docs/words/wsecure.html