스크립트 샌드박스

  • 릴리스 버전: Zurich
  • 업데이트 날짜 2025년 07월 31일
  • 소요 시간: 4분
  • 스크립트 샌드박스는 클라이언트 생성 스크립트를 스크립트 샌드박스에 사용할 수 있게 될 때 실행되는 제한된 권한을 가진 환경입니다.

    스크립트 샌드박스는 권한이 없거나 인증되지 않은 사용자가 인스턴스에서 권한 있는 스크립트를 실행하는 것을 방지하는 데 도움이 됩니다. 클라이언트가 평가를 위해 서버에 스크립트를 보낼 수 있는 두 가지 경우(클라이언트 생성 스크립트)가 있습니다.

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

    스크립트 샌드박스에서 제한된 메서드

    이러한 메서드는 스크립트 샌드박스의 클라이언트 생성 스크립트에서 지원되지 않습니다.

    주:
    시스템 속성을 false로 설정하여 스크립트 샌드박스와 함께 GlideSystem(gs) 메서드 log(), logError()logWarning()을 glide.security.sandbox_no_logging 활성화할 수 있습니다.
    표 1. 제한된 방법
    클래스 방법
    GlideRecord
    • delete다중()
    • deleteRecord()
    • getRowCount()
    • 삽입()
    • 업데이트()
    • updateMultiple()
    GlideSystem(gs)
    • addErrorMessage()
    • addInfoMessage()
    • addMessage()
    • 이벤트 큐 ()
    • flushMessages()
    • getEscapedProperty()
    • getProperty()
    • 로그()
    • 로그 오류()
    • 로그 경고()
    • setProperty()
    • setRedirect()
    • setReturn()
    • workflowFlush()
    ScopedGlideRecord
    • delete다중()
    • deleteRecord()
    • 삽입()
    • 업데이트()
    • updateMultiple()
    ScopedGlideSystem(gs)
    • addErrorMessage()
    • addInfoMessage()
    • 디버그()
    • 이벤트 큐 ()
    • 실행하다Now()
    • getProperty()
    • getSessionToken()
    • 정보()
    • setRedirect()
    GlideDate

    Glide날짜/시간

    글라이드타임

    • 더하다()
    • 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()
    • 연중 getWeekOfUTC()
    • getYearUTC()
    • getYearLocalTime()
    • isDST()
    • onOrAfter()
    • onOrBefore()
    • setDayOfMonthUTC()
    • setDisplayValue()
    • setMonth()
    • setNumericValue()
    • setTZ()
    • setValue()
    • setValueUTC()
    • 빼기()
    • toString()
    GlideSchedule
    • 더하다()
    • isInSchedule()
    • 로드()
    • when다음()