문제

나는이 가능한 착취를 처리하고 그것을하는 가장 좋은 방법이 무엇인지 궁금해하고 있습니까? Apache의 공통 검증기를 사용하고 알려진 허용되는 기호 목록을 만들어 사용해야합니까?

도움이 되었습니까?

해결책

로부터 위키 백과 기사:

일반적인 솔루션은 Location 또는 Set-Cookie와 같은 HTTP 헤더에 포함하기 전에 URL 인코딩 문자열입니다.

소독의 전형적인 예에는 정수 주조 또는 공격적인 정규식 교체가 포함됩니다. 이것이 PHP 특정 문제는 아니지만 PHP 통역사는 버전 4.4.2 및 5.1.2 이후이 공격에 대한 보호를 포함한다는 점에 주목할 가치가 있습니다.

편집하다

나는 Java Actions와 함께 JSP를 사용하는 데 묶여 있습니다!

이 공격 벡터에 대한 JSP 기반 보호 기능이없는 것 같습니다. 웹의 많은 설명은 ASP 또는 PHP를 가정하지만 이 링크 문제에 접근하는 상당히 플랫폼 중립적 인 방법을 설명합니다 (부수적 인 예로 사용되는 JSP).

기본적으로 첫 번째 단계는 잠재적으로 위험한 캐릭터 (CRS, LFS 등)를 인출 한 다음 제거하는 것입니다. 나는 당신이 기대할 수있는 것만 큼 강력한 솔루션에 대해 두려워합니다!

해결책

입력을 확인하십시오. 특히 쿠키를 설정하고 리디렉션 할 때 데이터를 HTTP 응답 헤더에 포함시키기 전에 CRS 및 LFS (및 기타 모든 유해 문자)를 제거하십시오. CR/LF 주입을 방어하기 위해 타사 제품을 사용하고 응용 프로그램 배치 전에 그러한 보안 구멍의 존재를 테스트 할 수 있습니다.

다른 팁

PHP를 사용하십시오? ;)

Wikipedia와 PHP ChangeLog에 따르면, PHP는 5.1.2 이후 4.4.2 이후 PHP4에서 PHP4에서 보호를 받았습니다.


단지 그것을 훑어 보았지만 이것은 도움이 될 수 있습니다. 그의 예는 JSP로 작성되었습니다.

좋아, 문자열을 읽을 때 int에 잘 캐스팅하는 것은 그리 많이 사용되지 않으며, 브라우저에서 입력을 다시 할 수있는 모든 동작에서 REGEX를 사용합니다. 더 강력한 솔루션을 찾고 있습니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top