
EN: rebol.com -
rebol.org -
rebol.net -
FR: Rebol Documentation Project -
forum RebelBB -
rebol-france.org -
forum codeur -
Spécifie les politiques de sécurité (niveaux d’accès et répertoires.) Retourne les réglages antérieurs.
secure level
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!)
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.
open - Ouvre une nouvelle connexion sur un port.
read - Lit depuis un fichier, une url ou le port spécifié (bloc ou objet).
write - Ecrit dans un fichier, une url, ou le port spécifié (bloc ou objet).