Le mode sans échec est activé pendant 1 s 8. Le mode sans échec est défini

Dans la version 8.3.9.2170, la sécurité a été augmentée - maintenant le système demande une confirmation pour lancer le traitement externe, les extensions, etc. Apparemment après le cheval de Troie :

Un mécanisme de protection contre les actions dangereuses a été mis en place. Lorsqu'une action potentiellement dangereuse est effectuée, le système émet un avertissement contenant des informations sur l'action en cours et le danger potentiel de cette action. Les activités potentiellement dangereuses comprennent :

  • Chargement d'un rapport externe, traitement ou extension de la configuration.
  • Charger ou mettre à jour la configuration / l'extension.
  • Accès depuis un rapport/traitement externe ou extension aux fonctionnalités suivantes :
  • Exécution des commandes du système d'exploitation.
  • Gestion des utilisateurs.

L'utilisateur a la possibilité d'autoriser ou de refuser une action potentiellement dangereuse. Si une action est autorisée, dans certains cas, il peut être nécessaire de réexécuter l'action autorisée.

Le message ressemble à ceci :

Avertissement de sécurité

Ouvre "" à partir du fichier "C: \ ....... epf". Il est recommandé de faire attention à la source à partir de laquelle il a été obtenu ce fichier... S'il n'y a pas d'accord avec la source sur le développement de modules supplémentaires, ou s'il y a des doutes sur le contenu du fichier, il n'est pas recommandé de l'ouvrir, car cela pourrait endommager l'ordinateur et les données. Autorisez l'ouverture de ce fichier. PAS VRAIMENT

Solution:

Dans le configurateur, dans les propriétés de l'utilisateur IB, décochez la case "Protection contre les actions dangereuses".

À partir de la documentation :Désactivation du mécanisme de protection contre les actions dangereuses

Dans certains cas, il est nécessaire de désactiver le mécanisme de protection contre les actions dangereuses. Pour ce faire, vous pouvez utiliser les fonctionnalités suivantes :

1. Désactivez la case à cocher Protection contre les actions dangereuses (Protection contre les actions dangereuses) dans les propriétés d'un utilisateur spécifique. Cela désactivera la protection pour cet utilisateur.

2. Utilisez le paramètre ProtectionOfDangerousActions des gestionnaires de traitement externe (rapport) Connect (). Dans ce cas, il est possible de charger un traitement externe (rapport) sans requête de l'utilisateur.

3. Utilisez la propriété ProtectionOnDangerousActions de l'objet ConfigurationExtension avant d'appeler la méthode Write() de cet objet.

4. Utilisez le paramètre DisableUnsafeActionProtection du fichier conf.cfg. Dans ce cas, le mécanisme de protection contre les actions dangereuses sera désactivé pour tous les utilisateurs de l'infobase dont les chaînes de connexion satisfont aux masques spécifiés.

La désactivation de la protection contre les actions dangereuses est effectuée selon les règles suivantes (dans l'ordre spécifié) :

1. La protection est considérée comme désactivée si la case Protection contre les actions dangereuses est décochée pour l'utilisateur actuel.

2. La protection est considérée comme désactivée si la chaîne de connexion avec base d'informations correspond à l'un des modèles spécifiés dans le paramètre DisableUnsafeActionProtection du fichier conf.cfg.

3. Si un traitement externe (rapport) est connecté avec une protection explicitement désactivée à l'aide du paramètre AntiDangerousActions.

4. Si la protection est explicitement désactivée à l'aide de la propriété d'extension AntiDangerousActions.

Le fait est que lors de l'utilisation de la version client-serveur de l'opération 1C, les traitements / rapports externes sont ouverts en mode sans échec, dans lequel l'utilisation du mode privilégié est interdite. Et le mode privilégié est très souvent utilisé dans des configurations typiques : formation d'imprimés, chèques de services divers (enregistrement des échanges), etc. Par conséquent, même en utilisant un rapport régulier sur l'ACS sans formulaire (par défaut, le formulaire général « Formulaire de rapport » est utilisé) et en enregistrant les paramètres de rapport personnalisés (dans la référence appropriée), vous recevrez une erreur concernant un accès insuffisant. droits sur diverses constantes et paramètres de session utilisés à des fins de service après la ligne SetPrivilegedMode (True);

La solution "correcte" serait de connecter des processeurs externes et des rapports via les mécanismes du BSP "Rapports et traitements supplémentaires" en désactivant le mode sans échec ou en ajoutant des autorisations (à mon avis, à partir de la version BSP 2.2.2.1). Mais si, pour une raison quelconque, il est nécessaire d'utiliser des fichiers de rapport/de traitement externes, vous pouvez configurer un profil de sécurité de cluster qui est utilisé comme profil de sécurité en mode sans échec pour une infobase spécifique.

Je voudrais noter tout de suite que cette option n'est pas préférable, mais en raison de diverses circonstances, elle peut être utilisée sous une forme aussi simplifiée. Par exemple, j'ai plusieurs bases dans différentes villes, un local commun avec des droits strictement limités, une clé USB fermée, etc., quelque part j'utilise Comptabilité 2.0, et quelque part 3.0, je fais presque tous les rapports en utilisant ACS sans formulaires, afin ouvert dans les deux versions. Servir tous ces rapports pour différentes versions et différentes bases est une entreprise laborieuse et sans espoir, tk. les plans incluent une transition vers une configuration unique et une base ...

Nous créons un profil.
Dans la console du cluster, créez un profil de sécurité dans lequel nous définissons des indicateurs "Peut être utilisé comme profil de sécurité en mode sans échec" et "sous" Contrôle total autorisé : " "en mode privilégié".

Dans de nombreux cas d'utilisation pour les rapports et les traitements simples cette méthode sera applicable. Pour des situations plus complexes, cela n'a aucun sens de décrire le processus, car il est décrit dans la documentation (possibilité de personnaliser des profils de sécurité pour des fichiers externes spécifiques en spécifiant son hachage, etc.).

P.S. Je pensais que les profils de sécurité ne fonctionnaient que lors de l'utilisation de licences pour la plate-forme et le serveur du niveau CORP, mais cette fonctionnalité est également remplie sur la plate-forme 1C: Enterprise 8.3 (sous condition, vous pouvez appeler PROF par analogie avec les configurations typiques Basic / PROF / CORP )

Lorsque vous démarrez le programme Téléchargement de documents en tant qu'utilisateur normal, l'erreur « Le mode sans échec est défini. L'opération est interdite ».

Cette complexité vient du fait Pour commencer traitement externe pas assez de droits. Pour paramétrer les droits d'accès, rendez-vous dans la base de données en mode 1C Entreprise au nom de Administrateur et aller à la rubrique Paramètres des utilisateurs et des droits / Profils des groupes d'accès, Cliquez sur Pour créer un groupe.

Saisissez le nom du groupe et cochez les cases disponibles pour les utilisateurs de ce groupe de rôles -

  • Ouverture interactive des rapports externes et traitement
  • Utilisation de rapports et de traitements supplémentaires

Cliquer sur Brûlez et fermez


Retournez au menu Utilisateurs et sélectionnez dans la liste l'employé qui travaillera avec le programme de téléchargement de documents. Cliquez sur Autorisations. Dans la liste des profils, marquez le profil que vous avez créé précédemment. Cliquer sur Écrire.


Il est recommandé d'ajouter Document Upload à la liste des processeurs externes afin que les utilisateurs puissent commencer le traitement. Pour cela dans le menu Administratif / Impression de formulaires et traitement / Rapports et traitement supplémentaires créer un nouveau traitement. Recherchez et nommez le fichier LoadDocuments.epf. Précisez l'emplacement du traitement dans le menu, à partir duquel l'utilisateur peut le lancer à l'avenir, par exemple, sélectionnez le menu Les références

En cliquant sur l'article Accès rapide vous indiquez à quels utilisateurs le traitement est accessible :


Après le réglage, cliquez sur Brûlez et fermez... Pour démarrer le traitement, les utilisateurs n'auront qu'à ressaisir la base de données et l'ouvrir à partir du menu d'accès (dans l'exemple, Références) et cliquer sur Exécuter.


S'ouvrir Menu - Toutes les fonctions ..... et recherchez l'option Profils de sécurité en cours d'utilisation dans la liste.


Il suffit de décocher l'option "Les profils de sécurité sont utilisés".


Après cela, le programme démarrera avec succès.

Le traitement externe est ouvert par programme à l'aide de l'objet de contexte global ExternalProcessing, qui a le type Gestionnaire de traitement externe... Pour chaque mode de fonctionnement de la plateforme 1C (mode application régulière et le régime application gérée) sont utilisés différentes méthodes objet pour travailler avec des traitements externes.

Exécuter le traitement externe en mode d'application normal

Dans une application classique, vous devez utiliser la méthode Create() de l'objet ExternalProcessing, à laquelle est transmis le nom complet du fichier de traitement externe. La méthode retourne un objet de type Traitement externe, cet objet est le traitement externe en cours d'ouverture. Si vous devez ouvrir un formulaire de traitement externe, appelez la méthode GetForm () sur l'objet résultant, qui renverra le formulaire principal, puis appelez la méthode Open () pour l'ouvrir.


Traitement = ExternalProcessing.Create (FullFileName);
Processing.GetForm ().Open ();

Dans les processeurs externes, le formulaire principal doit toujours être un formulaire normal et le formulaire géré doit toujours être un formulaire supplémentaire, sinon la méthode GetForm () ne fonctionnera pas en mode d'application normal.

Exécution du traitement externe en mode application gérée

Dans le mode formulaires gérés le découpage de l'algorithme selon le contexte d'exécution apparaît. Sur le client, nous obtenons des données binaires par le nom complet du fichier de traitement externe. Nous transférons les données binaires reçues sur le serveur et les mettons dans un stockage temporaire. Ensuite, vous devez appeler la méthode Connect () de l'objet ExternalProcessing, à laquelle l'adresse du stockage temporaire est transmise. La méthode renvoie le nom du traitement externe connecté. Nous renvoyons le nom du traitement externe au client, formons un chemin de chaîne vers le formulaire de traitement et utilisons la méthode OpenForm () pour ouvrir le formulaire de traitement externe.

&Sur le serveur
Fonction GetExternalProcessingName (BinaryData)
AddressToTemporaryStorage = PutToTemporaryStore (BinaryData);
Return ExternalProcessing.Connect (AddressInTemporaryStorage);
FinFonction

& sur le client
NomFichierComplet = ""; // Nom et prénom fichier de traitement externe.
FileData = New BinaryData (FullFileName);
ExternalProcessingName = GetExternalProcessingName (FileData);
OpenForm ("ExternalProcessing." + ExternalProcessingName + ".Form");

Mode sans échec pour les traitements externes

Les méthodes Create () et Connect () de l'objet ExternalProcessing ont un paramètre d'entrée SafeMode - un signe de connexion du traitement externe en mode sans échec. Si le paramètre n'est pas spécifié, la connexion sera établie en mode sans échec.
Mode sans échec Le travail est conçu pour protéger le système contre l'exécution de code de programme « peu fiable » sur le serveur. Le danger potentiel est un traitement externe ou un code de programme entré par l'utilisateur pour une utilisation dans les méthodes Exécuter () et Calculer ().
Le mode sans échec a les restrictions suivantes :
  • le mode privilégié est annulé s'il a été défini ;
  • les tentatives d'entrée en mode privilégié sont ignorées ;
  • les opérations avec les objets COM sont interdites ;
  • le chargement et la connexion de composants externes sont interdits ;
  • refusé l'accès à système de fichiers(sauf pour les fichiers temporaires) ;
  • L'accès à Internet est refusé.
Les traitements ouverts de manière interactive ne sont pas effectués en mode sans échec, il est donc recommandé de mettre en œuvre un mécanisme d'ouverture des processeurs externes en mode sans échec, ainsi que d'empêcher l'utilisateur d'ouvrir de manière interactive des processeurs externes au niveau des droits.
Pour interdire l'ouverture interactive des traitements, dans tous les rôles attribués à l'utilisateur, il est nécessaire de supprimer le droit « Ouverture interactive des traitements externes » (voir Figure 1).
Figure 1. Droits d'ouverture interactive des traitements/rapports externes
Le droit "Ouvrir les processeurs externes de manière interactive" n'affecte en aucune manière l'objet ExternalProcessing.

En ouvrant des rapports externes par programmation, de la même manière que pour les processeurs externes, vous ne devez utiliser que l'objet de contexte global Rapports externes, qui a le type Gestionnaire de rapports externes.

Avec la sortie de la plate-forme 8.3.9.2033, un nouveau mécanisme est apparu "Protection contre les actions dangereuses".

Grâce à cette innovation, 1C -ka commençait désormais à jurer à l'ouverture du traitement (et pas seulement) :

Avertissement de sécurité

Ouvre "Mes traitements externes" à partir du fichier "My_External_Processing.epf"

Il est recommandé de faire attention à la source à partir de laquelle ce fichier est obtenu. S'il n'y a pas d'accord avec la source sur le développement de modules supplémentaires, ou s'il y a des doutes sur le contenu du fichier, il n'est pas recommandé de l'ouvrir, car cela pourrait endommager l'ordinateur et les données.

Autoriser l'ouverture de ce fichier ?

Alors 1C a décidé de lutter contre les codes malveillants !

D'où viendra ce "code malveillant" dans l'entreprise est encore un mystère)

Les actions potentiellement dangereuses comprenaient :

  • Chargement d'un rapport externe, traitement ou extension de la configuration.
  • Charger ou mettre à jour la configuration / l'extension.
  • Accès depuis un rapport/traitement externe ou extension aux fonctionnalités suivantes :
  • Exécution des commandes du système d'exploitation.
  • Gestion des utilisateurs (enregistrement ou suppression d'informations sur un utilisateur de l'infobase).
  • Appel de la méthode Connect() du gestionnaire de processeurs externes (rapports).
  • Appel de la méthode ConfigurationExtension.Write().
  • Travailler avec des objets COM.

Comment désactiver ce "miracle" ?

Pour ce faire, vous devez exécuter 1C Enterprise en mode configurateur.
Sélectionnez le menu "Administration" - "Utilisateurs".
Dans la fenêtre ouverte de nos utilisateurs, vous devez ouvrir la fenêtre des paramètres utilisateur et dans l'onglet "Basique" décochez la case "Protection contre les actions dangereuses"

Il existe d'autres moyens de désactiver cette option :

La possibilité de spécifier une liste d'infobases, lors de l'utilisation avec laquelle la protection contre les actions dangereuses sera désactivée, a été implémentée.
Par cette fonction le paramètre DisableUnsafeActionProtection dans le fichier conf.cfg est responsable, ce qui vous permet de désactiver le mécanisme de protection contre les actions dangereuses pour tous les utilisateurs de certaines infobases dont les chaînes de connexion satisfont aux masques spécifiés dans le paramètre DisableUnsafeActionProtection.

Dans ce paramètre, vous pouvez spécifier plusieurs masques séparés par le symbole ";", par exemple :

DisableUnsafeActionProtection = test _. *; Stage _. *;

De plus, la protection contre les actions dangereuses de l'utilisateur peut être désactivée par programmation, pour laquelle il existe les paramètres et propriétés suivants :

  • Paramètre Protection contre les actions dangereuses des méthodes Connect () gestionnaires de traitement externe (rapports)
  • La propriété HazardousActionProtection de l'objet ConfigurationExtension avant d'appeler la méthode Write() de cet objet.

La vérification de la nécessité d'utiliser une protection contre les actions dangereuses est effectuée dans l'ordre suivant :

1. Si la case "Protection contre les actions dangereuses" est décochée pour l'utilisateur actuel, la protection est considérée comme désactivée.

2. Si la chaîne de connexion à l'infobase correspond à l'un des modèles spécifiés dans le paramètre DisableUnsafeActionProtection du fichier conf.cfg, la protection est alors considérée comme désactivée.

3. Si la protection est explicitement désactivée à l'aide du paramètre AntiDangerousActions d'un traitement ou d'un rapport externe.

4. Si la protection est explicitement désactivée à l'aide de la propriété d'extension AntiDangerousActions.

Partagez ceci