웹 응용 프로그램의 취약성 - XSS(교차 선별)는

2271 단어 HTMLJavaScriptxssJava
웹 응용 프로그램의 취약성 중 가장 문제가 되는 것은 교차 선별 (이하 XSS) 이다.
XSS는 사용자가 입력할 수 있는 폼 등에 '}' 에 특수 기호가 포함된 스크립트 라벨을 써서 임의의 스크립트를 실행하고 사용자가 사칭하거나 세션 납치 공격을 하는 것을 말한다.
예컨대
다음 입력 형식을 쓰면, 입력란 아래에 이 내용을 표시하는 포럼 사이트가 있습니다.

XSS의 취약성을 발견한 공격자는 이 게시판에 다음과 같은 스크립트 탭을 썼다.
filename
<script>
window.onload=function(){
    location.href="http://otomeshinto.com/?aid=282";
};
</script>
이 스크립트는 페이지를 불러올 때 스크립트가 지정한 위치로 이동합니다.
쓰기 후 선택

그리고 스크립트 탭이 > 에 삽입되었습니다
실제 쓰기 내용을 표시하지 않았습니다.
쓰기 후 페이지를 다시 불러오면 스크립트에서 지정됩니다
http://otomeshinto.com/?aid=282
의 페이지에서 강제로 팝업합니다.
이것은 XSS의 원리다.
쓰기 작업을 피하지 않는 스크립트 탭
일반 문자열로 인식되지 않음
''에 JavaScript로 포함
JavaScript를 실행하면 지정된 다른 페이지로 이동합니다.
이 정도면 귀여운데.
개인정보를 다루는 사이트에서 이러한 취약성을 발견했을 때
이 xss의 취약성에 따라 정보 유출 문제가 있어 큰 피해가 되고 있다.
구체적인 예-낚시정보 유출
만약 XSS의 취약성을 배양하고 있는 인터넷 쇼핑몰이 있다면공격자는 상품을 미리 결제할 때 인터넷 쇼핑몰과 유사한 가짜 사이트의 결제 페이지의 스크립트 라벨을 삽입한다.
예를 들어 다음 스크립트 탭입니다.
filename
<script>
window.onload=function(){
    location.href="偽サイトの決済ページ";
};
</script>
가짜 사이트의 결제 페이지에는 이름, 발송 주소, 메일 주소, 전화번호, 신용카드 번호 등 개인정보를 입력하는 입력란이 있는데, 이용자가 가짜 페이지인 줄 모르고 개인정보를 직접 입력하면 공격자에게 개인정보를 빼돌릴 수 있다.이처럼 개인정보와 신용카드 번호가 뽑히면 기억하지 못하는 엄청난 요청 등이 생길 수 있다.
그렇다면 어떤 대책이 있을까.
간단히 기술하다.
・위험 회피 문자(<,>,","등)
위와 같은 위험 문자를 문자열로 식별합니다.
스크립트 탭이 삽입되지 않도록 합니다.
• 입력 값 확인 (서버 측)
원래 위험한 글자를 입력할 때 쳐야 돼.
서버 측에 명확하게 기재된 것은 클라이언트 측의 입력 값 검사이다
예를 들어 자바스크립트는 웹 브라우저 설정에서 비활성화할 수 있습니다.
· 탄력적 운용 틀
모든 매개 변수에 대해 입력 값을 검사하는 것은 매우 어려워서 누락될 수 있습니다.
이에 따라 프레임 등을 활용해 저비용으로 대응할 수 있다.
대강 2
XSS에 대책이 있다는 것도 사실입니다.
피할 수 없는 상황과 입력 값을 대량으로 제한한 검사는 사용자의 능력을 해치고 사용자의 업무 효율을 떨어뜨릴 수 있기 때문이다.비즈니스 규칙을 명확히 하고 정확한 대책을 세우는 것이 중요하다.

좋은 웹페이지 즐겨찾기