2026, 새로운 도약을 시작합니다.

XSS 관련하여 해결방법에 대해 문의드려요. 채택완료

안녕하세요 ?

사내 보안사항에서 XSS 미조치건으로

board.php 에 stx 파라미터의 사용자 입력값을 필터링하라고 하는데요. 취약점이라고, "><script>alert(documen.cookie)/</script> 체크가 됩니다.

그누보드 최신 버전에서 이 부분에 대해 길이기 짧긴하지만 해결한거 같은데, 계속 이 부분이 취약하다고 몇번 지적을 받았는데, 어딜 어떻게 더 수정해야하는지 몰라서 글을 올려붑니다.

혹시 경험있으신 분의 조언을 부탁드립니다.

답변 3개

채택된 답변
+20 포인트

lib에 common.lib.php에 보면

Copy


function get_search_string($stx)

{

    $stx_pattern = array();

    $stx_pattern[] = '#\.*/+#';

    $stx_pattern[] = '#\\\*#';

    $stx_pattern[] = '#\.{2,}#';

    $stx_pattern[] = '#[/\'\"%=*\#\(\)\|\+\&\!\$~\{\}\[\]`;:\?\^\,]+#';

    $stx_replace = array();

    $stx_replace[] = '';

    $stx_replace[] = '';

    $stx_replace[] = '.';

    $stx_replace[] = '';

    $stx = preg_replace($stx_pattern, $stx_replace, $stx);

    return $stx;

}

$stx = get_search_string(trim($_REQUEST['stx']));

이런식으로 처리하시면 됩니다.

로그인 후 평가할 수 있습니다

답변에 대한 댓글 1개

대단히 감사합니다. 역시 고수님들의 능력을 믿었습니다.

댓글을 작성하려면 로그인이 필요합니다.

해당 부분은 충분히 조작 가능하기에 서버 헤더 부분에 조치를 취하는게 적합한듯합니다.

로그인 후 평가할 수 있습니다

답변에 대한 댓글 3개

액트온님 어떻게 서버 헤더 부분을 조치하는지 자세히 알려주실수 있으실까요 ? 제가 잘 모르는 부분이라 알려주시면 배우겠습니다.
https://developer.mozilla.org/ko/docs/Web/HTTP/Headers/X-XSS-Protection

참고 해보시면 되실듯합니다! 좋은 주말되세요!
감사합니다. 액트온님

댓글을 작성하려면 로그인이 필요합니다.

PHP에 특수기호들을 변환해주는 함수를 사용하면 어떨까요?

Copy


function safe_string($text)

{

$search = array("\\", "\0", "\x1a", "\x8");

$replace= array("\\\\", "\\0", "\\Z", "\\b");

$text = str_replace($search, $replace, $text); 

$text = htmlspecialchars($text, ENT_QUOTES, 'UTF-8');

return $text;

}

로그인 후 평가할 수 있습니다

답변에 대한 댓글 1개

감사합니다. 한번 해보겠습니다. !!!

댓글을 작성하려면 로그인이 필요합니다.

답변을 작성하려면 로그인이 필요합니다.

로그인
🐛 버그신고