스크립트 샌드박스 속성 구성

  • 릴리스 버전: Yokohama
  • 업데이트 날짜 2025년 01월 30일
  • 소요 시간: 5분
  • 스크립트 샌드박스 속성(glide.script.use.sandbox)을 활성화하여 권한이 제한된 샌드박스 내에서 클라이언트 작성 스크립트를 실행합니다.

    주:
    이 속성은 높은 보안 설정 플러그인을 활성화할 때 기본적으로 활성화됩니다. 플러그인 외부에서 이 속성을 활성화하지 마십시오.

    시스템 내에는 클라이언트가 평가를 위해 스크립트를 서버로 보낼 수 있는 두 가지 경우가 있습니다.

    • 필터 또는 쿼리: assigned_to=javascript:getMyGroups()와 같은 필터를 서버에 보내는 것은 합법적입니다.
    • 시스템 API: API 호출 AJAXEvaluate 를 사용하면 클라이언트가 서버에서 임의의 스크립트를 실행하고 응답을 받을 수 있습니다.
    스크립트 샌드박스 속성()glide.script.use.sandbox을 활성화하면 이러한 두 엔트리포인트 중 하나를 통해 평가되는 스크립트는 다음과 같은 특징이 있는 권한 축소 샌드박스 내에서 실행됩니다.
    • 클라이언트 호출 가능으로 표시된 비즈니스 규칙만 샌드박스 내에서 사용할 수 있습니다.
    • 샌드박스 사용으로 표시된 스크립트 포함만 샌드박스 내에서 사용할 수 있습니다.
    • 특정 API 호출(직접 DB 액세스를 처리하는 호출에 국한되지는 않음)은 허용되지 않습니다.
    • 샌드박스 내에서 데이터를 삽입, 업데이트 또는 삭제할 수 없습니다. 예를 들어 current.update()에 대한 모든 호출은 무시됩니다.
    주:
    릴리스부터 XanaduGlide AJAX 사용 으로 표시된 스크립트 포함(이전에는 클라이언트 호출 가능으로 명명됨)은 샌드박스 내에서 액세스할 수 없습니다. 샌드박스 사용 설정으로 표시된 항목만 샌드박스 내에서 사용할 수 있습니다. 릴리스 또는 이전 릴리스에서 Washington DC 릴리스로 Yokohama 업그레이드할 때 클라이언트 호출 가능으로 표시된 모든 스크립트 포함도 샌드박스 사용으로 표시됩니다.
    속성 설명
    glide.script.use.sandbox 권한이 축소된 "샌드박스"에서 클라이언트 생성 스크립트(AJAXEvaluate 및 쿼리 조건)를 실행합니다.

    예일 경우 클라이언트 호출 가능 옵션이 선택되고 샌드박스 사용 옵션이 선택된 스크립트 포함이 있는 비즈니스 규칙만 사용할 수 있으며 특정 백엔드 API 호출은 허용되지 않습니다.

    샌드박스가 활성화된 제한된 메서드

    스크립트 샌드박스가 활성화된 경우 클라이언트 생성 스크립트에서는 이러한 메서드가 지원되지 않습니다.

    주:
    GlideSystem(gs) 메서드 log(), logError()logWarning()은 시스템 속성을 false로 설정 glide.security.sandbox_no_logging 하여 스크립트 샌드박스와 함께 활성화할 수 있습니다.

    스크립트 샌드박스를 사용하도록 설정하지 않고 시스템을 실행하는 경우에는 이러한 제한이 적용되지 않습니다.

    표 1. 제한된 메서드
    클래스 방법
    GlideRecord
    • deleteMultiple()
    • deleteRecord()
    • getRowCount()
    • 삽입()
    • 업데이트()
    • updateMultiple()
    GlideSystem(gs)
    • addErrorMessage()
    • addInfoMessage()
    • addMessage()
    • 이벤트 큐()
    • 플러시메시지()
    • getEscapedProperty()
    • getProperty()
    • 로그()
    • 로그에러()
    • 로그경고()
    • setProperty()
    • set리디렉션()
    • setReturn()
    • workflowFlush()
    범위가 지정된 GlideRecord
    • deleteMultiple()
    • deleteRecord()
    • 삽입()
    • 업데이트()
    • updateMultiple()
    ScopedGlideSystem(gs)
    • addErrorMessage()
    • addInfoMessage()
    • 디버그()
    • 이벤트 큐()
    • executeNow()
    • getProperty()
    • getSessionToken()
    • 정보()
    • set리디렉션()
    GlideDate

    GlideDateTime

    글라이드타임

    • 추가()
    • addDays()
    • addDaysLocalTime()
    • addDaysUTC()
    • addMonthsLocalTime()
    • addMonths()
    • 추가초()
    • 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()
    • 세트TZ()
    • setValue()
    • setValueUTC()
    • 빼기()
    • toString()
    GlideSchedule
    • 추가()
    • isInSchedule()
    • 로드()
    • whenNext()