スクリプトサンドボックスプロパティの構成

  • リリースバージョン: Yokohama
  • 更新日 2025年01月30日
  • 所要時間:5分
  • スクリプトサンドボックスプロパティ (glide.script.use.sandbox) を有効にして、権限が制限されているサンドボックス内でクライアントが生成したスクリプトを実行します。

    システム内には、クライアントが評価のためにサーバーにスクリプトを送信できるケースが 2 つあります。
    • フィルター/クエリー:assigned_to=javascript:getMyGroups() などのフィルターをサーバーに送信することは合法です。
    • システム API:AJAXEvaluate API 呼び出しにより、クライアントはサーバー上で任意のスクリプトを送信して、応答を受信することができます。
    スクリプトサンドボックスプロパティ (glide.script.use.sandbox) を有効にすると、これらの 2 つのエントリポイントのいずれかを介して評価されるスクリプトは、次の特性を持つ、権限が減らされたサンドボックス内で実行されます。
    • サンドボックス内では、クライアント呼び出し可能とマークされたビジネスルールのみを使用できます。
    • サンドボックス内では、クライアント呼び出し可能とマークされたスクリプトインクルードのみ使用できます。
    • 特定の API 呼び出し (直接 DB アクセスを扱うものに概ね限定) は許可されていません。
    • サンドボックス内からデータを挿入、更新、または削除することはできません。たとえば、current.update() の呼び出しは無視されます。
    注:
    このプロパティの詳細については、「インスタンスセキュリティ強化設定」の「スクリプトサンドボックスを有効にする (Security Center 1.3 で更新)」を参照してください。
    スクリプトサンドボックスが有効になっている場合、これらのメソッドはクライアントで生成されたスクリプトで許可されません。
    表 : 1. 制限付きメソッド
    クラス メソッド
    GlideRecord
    • deleteMultiple()
    • deleteRecord()
    • getRowCount()
    • insert()
    • update()
    • updateMultiple()
    GlideSystem (gs)
    • addErrorMessage()
    • addInfoMessage()
    • addMessage()
    • eventQueue()
    • flushMessages()
    • getEscapedProperty()
    • getProperty()
    • log()
    • logError()
    • logWarning()
    • setProperty()
    • setRedirect()
    • setReturn()
    • workflowFlush()
    ScopedGlideRecord
    • deleteMultiple()
    • deleteRecord()
    • insert()
    • update()
    • updateMultiple()
    ScopedGlideSystem (gs)
    • addErrorMessage()
    • addInfoMessage()
    • debug()
    • eventQueue()
    • executeNow()
    • getProperty()
    • getSessionToken()
    • info()
    • setRedirect()
    GlideDate

    GlideDateTime

    GlideTime

    • add()
    • 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()
    • subtract()
    • toString()
    GlideSchedule
    • add()
    • isInSchedule()
    • Load()
    • whenNext()
    注:
    GlideSystem (gs) メソッドの log()logError()、および logWarning() は、glide.security.sandbox_no_logging システムプロパティを falseに設定することで、スクリプトサンドボックスで有効にできます。

    スクリプトサンドボックスを有効にせずにシステムを実行する場合、これらの制限は適用されません。

    注:
    このプロパティは、高セキュリティ設定プラグインを有効にするとデフォルトで有効になります。プラグインの外部でこのプロパティを有効にしないでください。
    表 : 2.
    プロパティ デフォルト
    権限が軽減された「サンドボックス」内で、クライアントが生成したスクリプト (AJAXEvaluate とクエリ条件) を実行します。

    有効にされている場合、[クライアント呼び出し可能] チェックボックスが true に設定されているビジネスルールとスクリプトインクルードのみを使用でき、特定のバックエンド API 呼び出しは禁止されます。

    有効 (サンドボックス使用)