XSS 빈틈 공격 예방
간단 한 예 를 들 어 로그 인 페이지 가 있다 면 로그 인 후 페이지 에 사용자 의 사용자 이름 을 표시 합 니 다.코드 세 션 은 다음 과 같 습 니 다:
request.setAttribute("username", username);
로그 인 후 표시 되 는 JSP 페이지 세 션:
: <span>${username}</span>
정상 적 인 상황 에서 이 기능 은 잘 작 동 할 것 이 며 아무런 문제 가 없 을 것 이다.하지만 엉뚱 한 사람 을 만나면 결 과 는 달라 진다.예 를 들 어 브 라 우 저 에 URL 을 입력 하면 http: /% host%:% ip% / XX / login? username = < script > alert ('해커!!!') < / script >
그러면 결 과 는 로그 인 사용자 의 이름 을 페이지 에서 보 는 것 이 아니 라 '해커!!!' 라 는 알림 상자 가 팝 업 됩 니 다. 이것 이 전형 적 인 크로스 스 크 립 트 공격 입 니 다.
해결책 은 바로 사용 하 는 것 이다.
${param.userName}
출력 매개 변수.일반적으로 상술 한 방법 은 해결 된다.하지만 여기 에는 내 가 만난 두 가지 특별한 상황 이 열거 되 어 있다.포인트 가 왔 습 니 다.
1. 페이지 에 설명 되 어 있 는 내용 은 받 은 매개 변 수 를 포함 합 니 다.
URL 은 다음 과 같 습 니 다. http: / /% host%:% ip% / XX / view? Id = 1 & type = manage * / alert ('해커!!!'); / *
jsp 코드 세 션:
/* $("#search-btn").click(function(){
window.location="../link?type=${param.type}&Id=${param.Id}";
}); */
이때 분 석 된 html 코드 는:/* $("#search-btn").click(function(){
window.location="../link?type=manage*/alert(' !!!');/*&Id=1";
}); */
위의 URL 을 방문 하면 팝 업 알림 상자 에 '해커!!!' 를 표시 합 니 다.따라서 페이지 에 필요 하지 않 은 주석, 특히 입력 매개 변 수 를 포함 한 주석 을 제거 해 야 합 니 다.
2. 페이지 에서 받 은 인 자 를 직접 사용 합 니 다.괄호 안에 인자 넣 기
URL 은 다음 과 같 습 니 다: http: / /% host%:% ip% / XX / view? Id = 3 & type = manage & node = 79777);alert ("해커!!!");%2f%2f
jsp 코드 세 션:
<pre name="code" class="html">var proxy = Handler.getProxyByNode(${param.node});
而此时解析出来的html代码为:
위의 URL 을 방문 하면 팝 업 알림 상자 에 '해커!!!' 를 표시 합 니 다.var proxy = Handler.getProxyByNode(79777);alert(" !!!");//);
그래서 이렇게 받 은 인 자 를 직접 사용 하 는 것 을 피해 야 한다.다음 방법 을 써 야 한다.var node = '${param.node}'; var proxy = Handler.getProxyByNode(node);
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
IBM Security Appscan 구멍 - 링크 주입 (크로스 오 버 요청 위조 에 편리)이 소프트웨어 는 외부 영향 을 받 은 입력 으로 명령, 데이터 구조 또는 기록 의 전부 또는 일 부 를 구성 하지만 해석 이나 해석 방식 을 수정 할 수 있 는 요 소 를 무해 하 게 처리 하지 못 했 습 니 다....
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.