kisa 취약점 제보 xss 필터 적용 채택완료

/bbs/write.php 238 line에 아래 코드가 있는데

 

html_purifier 함수를 왜 

 

if ( $w == 'u' && (! $is_member || ! $is_admin || $write['mb_id'] !== $member['mb_id']) ){

 

이조건에서만 실행 시키는건지 궁금합니다 해당 조건이면 비회원 수정시만 동작하게 되는건가요?

 

Copy
if ( $w == 'u' && (! $is_member || ! $is_admin || $write['mb_id'] !== $member['mb_id']) ){

// kisa 취약점 제보 xss 필터 적용

$content = get_text(html_purifier($write['wr_content']), 0);

}

답변 1개

채택된 답변
+20 포인트

!is_member : 비회원이거나

!is_admin : 관리자가 아니거나(일반회원일 경우)

$write['mb_id'] !== $member['mb_id'] : 작성자가 아니거나

 

즉 관리자 이외에 수정시 html_purifier를 태운다는겁니다

그리고 해당 조건문이 에디터 사용일때 조건을 타고있습니다

 

관리자는 html_purifier를 타지않도록 하기위 해당 조건문으로 작성한것같네요

 

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

답변에 대한 댓글 3개

아 제가 질문을 좀 대충 남겼네요
네 말씀하신것 처럼 그부분이 궁금해서요 왜 html_purifier를 관리자는 타지 않도록 되어 있는지가 궁금합니다
html_purifier의 제약이 좀 많아서 다 설명드리긴 힘들고
관리자 계정일때 html_purifier를 타지않음으로써 다양하게 글을 작성할 수 있도록 한것같습니다

html_purifier를 타지 않으면 글쓰기에서 스크립트 작성이나 각종 모든 데이터들을 넣을 수 있기 때문입니다
일반계정이 이런게 가능하다면 당연히 문제가 되겠지만 관리자계정이면 다양한 글작성 효과를 위해 제약을 풀어둔것같네요
아 그렇군요 답변 감사합니다 ^^

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

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

로그인
🐛 버그신고