테스트 사이트 - 개발 중인 베타 버전입니다

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

techstar 2년 전 조회 2,151

안녕하세요 ?

 

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

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

 

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

 

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

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

답변 3개

채택된 답변
+20 포인트
M
2년 전

lib에 common.lib.php에 보면

</p>

<p>function get_search_string($stx)

{

    $stx_pattern = array();

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

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

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

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

<p>    $stx_replace = array();

    $stx_replace[] = '';

    $stx_replace[] = '';

    $stx_replace[] = '.';

    $stx_replace[] = '';</p>

<p>    $stx = preg_replace($stx_pattern, $stx_replace, $stx);</p>

<p>    return $stx;

}</p>

<p>$stx = get_search_string(trim($_REQUEST['stx']));</p>

<p>

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

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

답변에 대한 댓글 1개

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

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

A
2년 전

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

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

답변에 대한 댓글 3개

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

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

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

s
2년 전

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

</p>

<p>function safe_string($text)</p>

<p>{</p>

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

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

$text = str_replace($search, $replace, $text); </p>

<p>$text = htmlspecialchars($text, ENT_QUOTES, 'UTF-8');</p>

<p>return $text;</p>

<p>}</p>

<p>

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

답변에 대한 댓글 1개

t
techstar
2년 전
감사합니다. 한번 해보겠습니다. !!!

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

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

로그인