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

  • リリースバージョン: 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() の呼び出しは無視されます。
    注:
    Xanaduリリース以降、Glide AJAX 有効 (旧称「クライアント呼び出し可能」) とマークされたスクリプトインクルードは、サンドボックス内ではアクセスできません。サン ドボックスが有効と マークされたもののみが、サンドボックス内で使用できます。Washington DCリリース以前から Yokohama リリースにアップグレードすると、[クライアント呼び出し可能] とマークされたスクリプトインクルードもサンドボックス有効としてマークされます。
    財産 説明
    glide.script.use.sandbox 権限が軽減された「サンドボックス」内でクライアント生成スクリプト (AJAXEvaluate およびクエリ条件) を実行します。

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

    サンドボックスが有効になっている制限付きメソッド

    スクリプトサンドボックスが有効になっている場合、これらのメソッドはクライアント生成スクリプトではサポートされません。

    注:
    GlideSystem (gs) メソッドの log()logError()、および logWarning() は、glide.security.sandbox_no_logging システムプロパティを falseに設定することで、スクリプトサンドボックスで有効にできます。

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

    表 : 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()