[Java] 시스템 취약점: 로그인 후 사용자 조작 시 주의사항

高洛峰
풀어 주다: 2016-10-13 12:50:53
원래의
1654명이 탐색했습니다.

프로젝트 배경:

SpringMVC + Mybatis + MySql 데이터베이스(javaWeb 프로젝트 개발)

관련 모듈: 로그인, 개인 정보 수정, 주문 세부 정보 조회

관련 취약점 소개 :

1. 로그인 인증코드 : 로그인 인증코드는 반드시 백그라운드에서 인증을 해야 합니다. 인증코드가 프론트에서만 인증되고 백그라운드에서 인증이 되지 않는 경우가 발생할 수 있습니다. 1차 검증 후 통과.

2. 인터셉터: 로그인 후 개인정보 작업 등 인터페이스 이름을 가로채려면 /user 또는 /admin을 사용하여 차단합니다. 로그인이 되어 있지 않으면 자동으로 로그인 페이지로 이동합니다.

3. 개인정보 수정: 개인정보 수정 시 사용자의 정보는 세션에 저장되어야 합니다. 이런 식으로 비밀번호 없는 인터페이스인 경우(즉, 정보 수정이 필요하지 않습니다.) 계정 정보 수정 시 사용자의 키를 고유 식별자로 직접 전달하지 않도록 주의하세요. 정보를 얻으려면 세션에서 현재 로그인된 사용자의 정보를 얻어 계정 3000001 사용자의 로그인을 방지할 수 있습니다. 그런 다음 계정 3000002 사용자의 개인 정보를 수정합니다.

4. 주문 세부정보 인터페이스: 사용자의 주문 내역을 조회하고 주문 ID를 통해서만 조회하는 경우 인터페이스 이름에 /user를 추가하더라도 비로그인이 차단됩니다. 사용자의 경우 다른 사용자가 주문 내역 이외의 주문 내역을 조회할 수도 있습니다. 로그인 후 자신의 것입니다. 이 경우, 주문 내역을 조회하기 전 해당 주문이 현재 로그인된 사용자의 개인 주문인지, 즉 세션의 ID가 주문을 생성한 사람의 ID와 일치하는지 확인해야 합니다. 정보 유출을 방지하기 위해

(참고: 위 취약점은 실제로 발생했습니다. 다른 초보자들이 이를 통해 배우고 개발 중에 발생한 문제에 대해 더 많은 사람들과 소통할 수 있기를 바라면서 게시합니다)


원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿
회사 소개 부인 성명 Sitemap
PHP 중국어 웹사이트:공공복지 온라인 PHP 교육,PHP 학습자의 빠른 성장을 도와주세요!