최근에 asp.net 2.0의 새로운 로그인 컨트롤을 연구하던 중 시스템의 기본 비밀번호 보안 요구 사항이 상대적으로 높다는 사실을 발견했습니다. 즉, "최소 비밀번호 길이는 7이며, 다음과 같은 영숫자가 아닌 문자를 포함해야 합니다. 1. ", 일반 Wang Zhan의 경우에는 필요하지 않습니다(windows2003sever에서도 기본적으로 이러한 복잡한 비밀번호가 필요하지 않음). 일부 참고 자료에서 제공하는 수정 방법은 machine.config에서 수정하는 것입니다. 그러나 호스트에 대한 관리 권한이 없으면 호스트를 수정할 수 없습니다. 따라서 web.config 파일에서 수정하는 것이 좋습니다.
방법은 web.config의 <system.web> 노드에 하위 태그를 추가하는 것입니다.
<회원>
<공급자>
<remove name="AspNetSqlMembershipProvider"/>
<이름 추가="AspNetSqlMembershipProvider"
유형=" System.Web.Security.SqlMembershipProvider, System.Web, 버전=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"
ConnectionStringName="LocalSqlServer"
활성화PasswordRetrieval="false"
활성화PasswordReset="true"
requireQuestionAndAnswer="true"
애플리케이션이름="/"
requireUniqueEmail="false"
비밀번호 형식="해시됨"
maxInvalidPasswordAttempts="5"
minRequiredPasswordLength="6"
minRequiredNonalphanumericCharacters="0"
비밀번호AttemptWindow="10"
비밀번호강도RegularExpression="" />
</공급자>
</멤버십>
ConnectionStringName 데이터베이스 연결을
설명하겠습니다
.web.config에서 설정해야 합니다.
활성화PasswordRetrieval 현재 멤버십 공급자가 사용자가 자신의 암호를 검색할 수 있도록 구성되어 있는지 여부를 나타내는 값을 가져옵니다.
활성화PasswordReset 사용자가 암호를 재설정할 수 있도록 현재 멤버십 공급자가 구성되어 있는지 여부를 나타내는 값을 가져옵니다.
requireQuestionAndAnswer 기본 멤버십 공급자가 사용자에게 암호 재설정 및 검색을 위해 암호 질문에 대답하도록 요구하는지 여부를 나타내는 값을 가져옵니다.
applicationName은 애플리케이션의 이름을 가져오거나 설정합니다.
requireUniqueEmail 사용자가 사용자를 생성할 때 고유한 이메일 주소 값을 제공해야 하는지 여부를 나타냅니다.
비밀번호 형식은 비밀번호가 멤버십 데이터 저장소에 저장되는 형식을 나타냅니다. 자세한 지침은 아래에 나와 있습니다.
maxInvalidPasswordAttempts 사용자가 멤버십에서 잠기기 전에 허용되는 잘못된 비밀번호 또는 잘못된 비밀번호 응답 시도 횟수를 가져옵니다.
minRequiredPasswordLength 비밀번호에 필요한 최소 길이를 가져옵니다.
minRequiredNonalphanumericCharacters 유효한 암호에 포함되어야 하는 특수 문자의 최소 수를 가져옵니다.
비밀번호AttemptWindow 멤버십 사용자가 잠기기 전에 허용되는 잘못된 비밀번호 또는 잘못된 비밀번호 응답 시도의 최대 횟수(분)를 가져옵니다.
PasswordFormat의 상세 설명 속성은 비밀번호가 저장되는 형식을 나타냅니다. 비밀번호는 일반 비밀번호, 암호화 비밀번호, 해시 비밀번호 형식으로 저장할 수 있습니다. 일반 비밀번호는 일반 텍스트로 저장되어 비밀번호 저장 및 검색 성능이 향상되지만 보안성이 떨어지며 데이터 소스의 보안이 손상될 때 쉽게 읽을 수 있습니다. 암호화된 비밀번호는 저장 시 암호화되며 비밀번호를 비교하거나 검색할 때 해독될 수 있습니다. 이러한 비밀번호는 저장 및 검색 중에 추가 처리가 필요하지만 더 안전하며 데이터 소스의 보안이 손상되면 쉽게 검색할 수 없습니다. 해시된 비밀번호는 데이터베이스에 저장될 때 단방향 해싱 알고리즘과 무작위로 생성된 솔트 값을 사용하여 해시됩니다. 비밀번호가 확인되면 비밀번호는 확인을 위해 데이터베이스의 솔트 값으로 해시됩니다. 해시된 비밀번호를 검색할 수 없습니다.