PHP에서 최고의 XSS 필터는 다음과 같습니다 당신이 몇 XSS를 이용하기> < 필요하지 않습니다 becuase
htmlspecialchars($_POST['param'],ENT_QUOTES);
당신은 또한 따옴표를 인코딩해야하는 이유입니다. 예를 들어이 XSS에 취약 :
$_REQUEST[xss]='" onMouseOver="alert(/xss/)"';
ENT_QUOTES : 당신이 onMouseover와 를 사용할 수 있기 때문에이 경우 자바 스크립트를 실행하기> < 필요하지 않습니다
print('<A HREF="http://www.xssed.com/'.htmlspecialchars($_REQUEST[xss]).'">link</a>');
, 여기에 예를 들어 공격입니다 큰 따옴표를 처리합니다.
이메일 주소가 이 아닌은 메일 클라이언트가 실행하지 않아야하며, 동일한 발신자 정책으로 인해 귀하의 사이트가 영향을받지 않습니다. 그러나 안전한쪽에 있기 위해 나는 여전히 htmlspecialchars($var,ENT_QUOTES);
를 사용할 것이다. 그러나 PHP의 mail() 함수는 CRLF 주입이라고하는 다른 유형의 취약점에 굴복 할 수 있습니다. 다음은 PHP-Nuke에 대한 예제 취약점입니다. 다음과 같은 함수 호출이있는 경우 : mail($fmail, $subject, $message, $header);
그런 다음 사용자가 \r\n
을 $ header에 삽입 할 수 없도록해야합니다.
취약 코드 :
$header="From: \"$_GET[name]\" <$ymail>\nX-Mailer: PHP";
는 패치 :
$_GET[name]=str_replace(array("\r","\n"),$_GET[name]);
$header="From: \"$_GET[name]\" <$ymail>\nX-Mailer: PHP";
는 "구멍"을 찾기위한 자동화 된 테스트가 있습니까? – Kirzilla
두뇌와 손. 그러나 구글이 주변에 있다면 몇 가지가있다. http://www.acunetix.com/의 사이트는 좋지만 내 두뇌는 좋다.하지만 무료는 아니다. –
Acunetix에서 무료 xss 스캐너를 사용하십시오. http://www.acunetix.com/cross-site-scripting/scanner.htm 필자는 필자의 예제에서와 같이 이상한 유형의 xss를 테스트 할 것입니다. – rook