<script>
    var default_url = "https:\/\/xetown.com\/";
    var current_url = "https:\/\/xetown.com\/?mid=questions";
    var request_uri = "https:\/\/xetown.com\/";
    var current_lang = xe.current_lang = "ko";
    var current_mid = "questions";
    var http_port = null;
    var https_port = null;
    var enforce_ssl = true;
    var cookies_ssl = true;
    var rewrite_level = 2;
    if (detectColorScheme) detectColorScheme();
</script>

 

https://xetown.com/questions/1792187

<script>
    var default_url = "https:\/\/xetown.com\/";
    var current_url = "https:\/\/xetown.com\/?document_srl=1792187\u0026mid=questions\u0026act=dispBoardContent";
    var request_uri = "https:\/\/xetown.com\/";
    var current_lang = xe.current_lang = "ko";
    var current_mid = "questions";
    var http_port = null;
    var https_port = null;
    var enforce_ssl = true;
    var cookies_ssl = true;
    var rewrite_level = 2;
    if (detectColorScheme) detectColorScheme();
</script>

  • profile

    네, 맞습니다. 자바스크립트 문자열에서 백슬래시+슬래시(\/)는 슬래시(/)와 같은 의미입니다.

    즉, "https:\/\/xetown.com\/"는 "https://xetown.com/"와 100% 똑같습니다.

    \u0026은 &와 똑같습니다. 콘솔에서 current_url을 찍어보면 &로 나옵니다.

    스킨에서 흔히 쓰는 getUrl() 함수도 &를 &amp;로 인코딩해서 출력하는데, 동일한 원리입니다.

     

    라이믹스 2.1.8부터 자바스크립트 안에 들어가는 특수문자의 이스케이프 처리가 강화되었습니다.

    </script> 같은 내용을 넣어서 스크립트를 강제 종료하고 그 뒤에 이상한 내용을 덧붙이거나,

    //로 주석처리하는 등... 슬래시만으로도 다양한 꼼수를 쓸 수 있기 때문입니다.

     

    특정한 취약점이 발견된 것은 아니지만, 템플릿 v2 적용의 일환으로 미리 보안을 강화했습니다.

    다행히 자바스크립트에는 똑같은 문자를 표현하는 방법이 여러 가지 있어서,

    저렇게 써도 잘 인식합니다.

  • profile profile
    보안과 관련된 부분이군요!
    빠른 답변 감사합니다.