저는 중소 기업을 위해 ASP.NET 웹 사이트를 개발하고 있습니다. 사이트는 사이트 소유자가 사이트 콘텐츠를 관리 할 수있는 암호로 보호 된 영역이 필요합니다. 나머지 지역에서는 사이트가 완전히 읽기 전용입니다.불쌍한 사람의 인증
은 내가 설계 다음과 같은 방식을 구현했습니다 :
이- 사용자는 일부 보호 페이지에 액세스하려고합니다.
- 모든 보호 된 페이지는 사용자가 보호 된 페이지에 있다는 것을 알 수 있도록 UI를 변경하고 보안 쿠키를 확인하는 "AdminIface"마스터 페이지를 상속합니다. 쿠키가 없거나 잘못된 쿠키 인 경우 : auth.aspx로 리디렉션하십시오.
- Auth.aspx는 RNGCryptoServiceProvider를 사용하여 큰 난수를 생성 한 다음이를 클라이언트 + 암호 형식으로 보냅니다.
- 사용자가 암호를 입력합니다.
- 클라이언트 쪽 JavaScript는 임의 시드 + 암호를 결합하고 결과 문자열의 MD5를 계산하여 MD5를 서버에 게시합니다.
- 서버는 랜덤 시드를 세션 별 값 보류와 비교합니다. OK 시드가 무작위 시드 + 암호를 결합하고 MD5를 계산하고 MD5를 비교합니다.
- 체크섬이 일치하면 서버가 보안 쿠키로 사용할 하나 이상의 큰 난수를 생성합니다.
- 서버는 세션 쿠키에 보안 쿠키를 저장하고 쿠키가 현재 승인 된 것으로 간주되는 클라이언트에게 보냅니다.
정확한 암호는 문자열 상수로 auth.aspx 소스에 저장됩니다.
이 체계는 괜찮습니까?
P. 나는 AD + Kerberos가 훨씬 낫다는 것을 알고 있지만, godaddy의 공유 호스팅에서 한 번 더 응용 프로그램을 만들 수있는 권한이 없습니다.
쿠키를 사용 중지하면 어떻게됩니까? – Paddy
추신 : 더 나은 웹 호스트를 고려하십시오. GoDaddy는 값이 쌉니다.하지만 정말 끔찍합니다. 내가 그 (것)들을 사용하는 일을 생각하면 두려워한다. –
Paddy, 오직 1 명의 사용자 만 자료를 편집 할 수 있습니다. 그는 내 고객이고, 나는 그를 포괄적 인 사용자 가이드로 안내 할 것입니다. 나는 그를 위해 IE8을 사용하도록 강요 할 수도 + 필요한 경우 신뢰할 수있는 사이트에 사이트를 추가 할 수 있습니다. – Soonts