Configuration de la propriété de bac à sable de script

  • Rversion finale: Yokohama
  • Mis à jour 30 janv. 2025
  • 3 minutes de lecture
  • Activez la propriété de bac à sable de script (glide.script.use.sandbox) pour exécuter les scripts générés par le client à l’intérieur d’un bac à sable disposant de droits restreints.

    Remarque :
    Cette propriété est activée par défaut lorsque vous activez le module d’extension Paramètres de sécurité élevée. N’activez pas cette propriété en dehors du module d’extension.

    Il existe deux cas dans le système qui permettent au client d’envoyer des scripts au serveur pour évaluation.

    • Filtres ou requêtes : Il est légal d’envoyer un filtre au serveur tel que : assigned_to=javascript :getMyGroups().
    • API système : L’appel d’API AJAXEvaluate permet au client d’exécuter des scripts arbitraires sur le serveur et de recevoir une réponse.
    Si vous activez la propriété de bac à sable de script (glide.script.use.sandbox), le script évalué via l’un de ces deux points d’entrée s’exécute dans un bac à sable à droits réduits présentant les caractéristiques suivantes :
    • Seules les règles métier marquées comme pouvant être appelées par le client sont disponibles dans le bac à sable.
    • Seuls les includes de script marqués Sandbox enabled sont disponibles dans le sandbox.
    • Certains appels d’API (en grande partie, mais pas entièrement, à ceux traitant de l’accès direct à la base de données) ne sont pas autorisés.
    • Les données ne peuvent pas être insérées, mises à jour ou supprimées depuis le bac à sable. Tous les appels à current.update(), par exemple, sont ignorés.
    Remarque :
    À partir de la version, les Xanadu includes de script marqués comme Glide AJAX activé (précédemment nommés Client pouvant être appelé) ne sont pas accessibles dans le bac à sable. Seuls ceux marqués comme Sandbox activé sont disponibles dans le sandbox. Lors de la mise à niveau vers la version ou une Yokohama version antérieure, tous les includes de Washington DC script marqués comme Client pouvant être appelé sont également marqués comme étant Bac à sable activé.
    Propriété Description
    glide.script.use.sandbox Exécutez les scripts générés par le client (AJAXEvaluate et conditions de requête) à l’intérieur d’un « bac à sable » à droits réduits.

    Si vrai, seules les règles métier avec l’option Client pouvant être appelé sélectionnée et les includes de script avec l’option Sandbox activée sont disponibles, et certains appels API back-end sont interdits.

    Méthodes restreintes avec bac à sable activé

    Ces méthodes ne sont pas prises en charge dans les scripts générés par le client lorsque le sandboxing des scripts est activé.

    Remarque :
    Les méthodes GlideSystem (gs) log(), logError() et logWarning() peuvent être activées avec le sandboxing de script en définissant la glide.security.sandbox_no_logging propriété système sur false.

    Si vous exécutez le système sans activer le sandboxing de script, aucune de ces restrictions ne s’applique.

    Tableau 1. Méthodes restreintes
    Classe Méthode
    GlideRecord
    • deleteMultiple()
    • deleteRecord()
    • getRowCount()
    • insérer()
    • mettre à jour()
    • updateMultiple()
    Système Glide (gs)
    • addErrorMessage()
    • addInfoMessage()
    • addMessage()
    • eventQueue()
    • flushMessages()
    • getEscapedProperty()
    • getProperty()
    • journal ()
    • logError()
    • logWarning()
    • setProperty()
    • setRedirect()
    • setReturn()
    • workflowFlush()
    Champ d’application GlideRecord
    • deleteMultiple()
    • deleteRecord()
    • insérer()
    • mettre à jour()
    • updateMultiple()
    Champ d’application GlideSystem (gs)
    • addErrorMessage()
    • addInfoMessage()
    • débogage ()
    • eventQueue()
    • exécuterNow()
    • getProperty()
    • getSessionToken()
    • info()
    • setRedirect()
    Date GlideDate

    GlideDateTime

    GlideTime

    • ajouter()
    • addDays()
    • addDaysLocalTime()
    • addDaysUTC()
    • addMonthsLocalTime()
    • addMonths()
    • addSeconds()
    • addWeeks()
    • addYears()
    • compareTo()
    • getByFormat()
    • getDate()
    • getDayOfWeek()
    • getDayOfWeekUTC
    • getDayOfWeekLocalTime()
    • getDayOfMonth()
    • getDayOfMonthLocalTime()
    • getDayOfMonthNoTZ()
    • getDayOfWeek()
    • getDayOfWeekLocalTime()
    • getDayOfWeekUTC()
    • getHourOfDayLocalTime()
    • getHourOfDayUTC()
    • getDaysInMonth()
    • getDaysInMonthUTC()
    • getDaysInMonthLocalTime()
    • getDisplayValueInternal()
    • getDisplayValue()
    • getHourLocalTime()
    • getLocalDate()
    • getLocalTime()
    • getMinutesLocalTime()
    • getMinutesUTC()
    • getMonthLocalTime()
    • getMonthNoTZ()
    • getMonthUTC()
    • getNumericValue()
    • getSeconds()
    • getTime()
    • getTZOffset()
    • getValue()
    • getYear()
    • getUserTimeZone()
    • getWeekOfYearLocalTime()
    • getWeekOfYearUTC()
    • getYearUTC()
    • getYearLocalTime()
    • isDST()
    • onOrAfter()
    • onOrBefore()
    • setDayOfMonthUTC()
    • setDisplayValue()
    • setMonth()
    • setNumericValue()
    • setTZ()
    • setValue()
    • setValueUTC()
    • soustraire()
    • toString()
    Calendrier GlideSchedule
    • ajouter()
    • isInSchedule()
    • Charger()
    • whenNext()