XSS 취약점 신고합니다 > 그누4 질문답변

그누4 질문답변

그누보드4 관련 질문은 QA 로 이전됩니다. QA 그누보드4 바로가기
기존 게시물은 열람만 가능합니다.

XSS 취약점 신고합니다 정보

XSS 취약점 신고합니다

첨부파일

xss_filter.php (679byte) 21회 다운로드 2013-11-05 23:01:56

본문

<object type="application/x-shockwave-flash" width="560" height="315" dummy='>'>
<param name="movie" value="xss.swf"></param>
<param name="allow&#115;criptaccess" value="always"></param>
</object>

이렇게 올리면 XSS가 됩니다.

object 태그와 같은 복잡한 태그를 정규식만으로 처리하기는 어렵습니다.

object 태그를 허용하지 않고 embed만 허용 하는건 어떤지요?

첨부파일은 간단한 xss 필터입니다.
이것만으로도 최신 브라우저(ie8 및 그 이상)에서 거의 모든 xss 공격은 막을 수 있습니다.


	function xss_filter($content)
	{
		// Strip bad elements.
		$content = preg_replace('/(<)(|\/)(\!|\?|html|head|title|meta|body|style|link|base|script'.
		'|frameset|frame|noframes|applet|object|param|iframe|noscript|noembed|basefont|xmp|plaintext|comment)/i',
		'&lt;$2$3', $content);

		// Strip script handlers.
		$content = preg_replace_callback("/([^a-z])(o)(n)/i", 
		create_function('$matches', 'if($matches[2]=="o") $matches[2] = "&#111;";
		else $matches[2] = "&#79;"; return $matches[1].$matches[2].$matches[3];'), $content);

		// Embed
		$content = str_ireplace('<embed', '<embed allowscriptaccess="never"' , $content);

		return $content;
	}

댓글 전체

전체 66,554 |RSS
그누4 질문답변 내용 검색

회원로그인

(주)에스아이알소프트 / 대표:홍석명 / (06211) 서울특별시 강남구 역삼동 707-34 한신인터밸리24 서관 1402호 / E-Mail: admin@sir.kr
사업자등록번호: 217-81-36347 / 통신판매업신고번호:2014-서울강남-02098호 / 개인정보보호책임자:김민섭(minsup@sir.kr)
© SIRSOFT