2010-02-26 5 views
0

관리자 패널에 사용자 입력이 올바른지 확인하는 로그 기능이 있습니다. 올바르지 않은 경우 로그 파일에 기록합니다. 이 로그 파일은 로그인 할 때 관리자에게 쓰여집니다.XSS PHP 로그 필터?

나는 취약점을 위해 사이트를 테스트하고 있었으며 XSS 구멍을 사용하여 서버를 완전히 활용할 수있었습니다.

function isXSS($in){ 
    return preg_match("[<>(%[0-9a-fA-F]{2}+)]", $in) == 1; 
} 

을하지만 어느 paranoidly 마크 A를 혐오 XSS 웜 전부 또는 공통 XSS 주사 무시할 것이다 :이 함수를 통해 입력을 검사에 의해 기록 된 입력을 필터링하는 것을 시도했다. 나는 문제가 + 한정 기호라고 생각하지만, 다른 PHP 정규 표현식이 이것을 허용한다고 들었습니다.

답변

2

좋은 오래된 무엇이 문제입니까? htmlspecialchars? 나는 잠재적으로 악의적 인 사용자를 추적 할 수있는 이유를 알고 있지만 보안 구멍을 차단하는 데 에너지를 투자한다면 실제로는 필요가 없습니다.

1

당신은 결코 이기지 못할 전투 인 enumerate badness을 시도하고 있습니다. 대신, 당신은 또한 htmlpurifier

같은 라이브러리를 통해, 단지 당신이 잘 알고있는 마크 업을 허용해야한다, 나는 {2}+ 구문에 대한 모르겠지만, 당신이 원하는이에 가까운 생각 :

"[<>(%[0-9a-fA-F]{2,})]"