이스케이프 Jelly(인스턴스 보안 강화)

  • 릴리스 버전: Xanadu
  • 업데이트 날짜 2024년 08월 01일
  • 읽기1분
  • glide.ui.escape_all_script 속성을 사용하여 Jelly에 삽입된 모든 스크립트를 강제로 이스케이프합니다.

    <j:jelly>에 포함 된 모든 JS 및 HTML 문자열을 이스케이프합니다 . </j:jelly> 출력 스트림에 기록되기 전에 여러 XSS 문제가 발생하지 않도록 합니다.

    추가 정보

    속성 설명
    속성 이름 glide.ui.escape_all_script
    구성 유형 시스템 속성(/sys_properties_list.do)
    인스턴스 보안 센터에서 구성
    목적

    속성이 true로 설정되지 않은 경우 개발자는 XSS 문제를 방지하기 위해 각 사용자 지정 Jelly 스크립트에서 여러 단계를 수행해야 합니다. 이러한 단계에는 웹 페이지에서 렌더링하기 위해 출력 스트림으로 전송되는 Jelly 변수를 찾고 다음 각 태그에서 이스케이프를 수행하는 작업이 포함됩니다.

    $â {JS:표현식}

    $â {HTML:표현식}

    또는

    $â {JS,HTML:표현식}

    권장 값
    기능적 영향 (중간) 이 정정은 파서 수준에서 Jelly 이스케이프를 적용합니다. 이는 결과 데이터와 사용자의 상호 작용에 기능에 영향을 줄 수 있습니다.
    보안 위험 (높음) 입력 유효성 검사는 애플리케이션에 입력되는 모든 사용자 입력에 대해 수행되어야 합니다. 이렇게 하면 플랫폼에 대한 주입 공격을 방어하고 보호할 수 있습니다.
    임시 해결책

    웹 페이지에서 렌더링하도록 디자인된 일부 스크립트 및 HTML 태그가 손상된 것처럼 보일 수 있으므로 UI가 영향을 받을 수 있습니다. 이 수정은 렌더링할 출력으로 인코딩된 페이지를 브라우저로 보냅니다.

    예를 들어 'my string here' 대신 'my <u>string here</u> as the tag was properly escaped'라고 <u> 표시될 수 있습니다. 이 경우 이스케이프를 방지하기 위해 JS 이스케이프를 방지하기 위해 Jelly 표현식에 NOESC 접두사를 추가합니다. 예:
    • 이전: ($[jvar_context_menus]);
    • 이후: ($[NOESC:jvar_context_menus]);
    • 이전: $[jvar_ui_policy_scripts]
    • 이후: $[NOESC:jvar_ui_policy_scripts]
    참조

    높은 보안 설정

    Jelly 태그

    시스템 속성 추가 또는 생성에 대한 자세한 내용은 을 참조하십시오 Add a system property.