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

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

QA

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

답변 3

본문

안녕하세요 ?

 

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

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

 

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

 

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

이 질문에 댓글 쓰기 :

답변 3

lib에 common.lib.php에 보면


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']));

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

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


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;
}

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

답변을 작성하시기 전에 로그인 해주세요.
QA 내용 검색
질문등록
전체 32
© SIRSOFT
현재 페이지 제일 처음으로