문제

세션 관리와 관련하여 현재 응용 프로그램의 보안을 향상시키고 싶습니다. 사용자가 명시 적으로 로그 아웃 할 때까지 로그인하기를 원합니다.

어떻게 단단히 구현합니까?

SessionID, IP, UserAgent와 같은 데이터베이스에 세션 정보를 유지합니까?

요구 사항, 데이터베이스 레이아웃, DO 및 DONS, 팁 및 요건을 제공하십시오.

참고 : ASP.NET, Rails, CodeIgniter 등과 같은 프레임 워크를 알고 있습니다 ... 이미 처리하고 있지만 이것은 옵션이 아닙니다. 실제로 클래식 ASP 응용 프로그램을위한 것입니다. 그러나 나는이 질문이 특정 언어와 관련이 없다고 생각합니다.

도움이 되었습니까?

해결책

읽다 개선 된 영구 로그인 쿠키 모범 사례 (기사와 의견 모두).

다른 팁

HTTPS를 사용하지 않으면 이러한 시스템이 안전 할 수 없다는 것을 알아야합니다.

아주 간단합니다.

  1. 사용자 로그인.
  2. 서버는 미래에 만료 날짜가있는 쿠키를 사용자에게 보냅니다.
  3. 원한다면 사용자의 IP를 기록 할 수 있습니다.
  4. 사용자는 다른 페이지를 요청합니다.
  5. 서버는 쿠키 (쿠키에 저장된 IP)를 확인하고 사용자가 로그인 한 것을보고 페이지를 서버합니다.

몇 가지 보안 고려 사항 :

위에서 언급했듯이 HTTPS를 사용하지 않는 한 안전한 방법은 없습니다.

공유 호스팅을 사용하는 경우 쿠키가 저장된 위치를 알아보십시오. 종종 그들은 /TMP 디렉토리에 거주하며, 모든 사용자가 액세스 할 수있는 모든 사용자가 쿠키를 훔칠 수 있습니다.

컴퓨터가 변경되지 않을 것이라는 것을 알고 있다면 IP를 추적하십시오.

쿠키에 정보를 저장하지 마십시오. 임의의 숫자를 저장하고 데이터베이스에 서버에 속하는 정보를 저장하십시오. (선호하는 색상과 같은 민감한 정보는 쿠키에 저장 될 수 있습니다.)

2030 년 같은 말도 안되는 만료로 쿠키를 만듭니다. 세션 상태가 필요한 경우 쿠키에 세션 ID를 유지하고 (보안이 우선 순위 인 경우 암호화) 데이터베이스의 테이블에 매핑하십시오. IP/UserAgent 등은 메타 데이터 인 경향이 있으며 쿠키는 세션의 열쇠입니다.

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