웹사이트 보안을 달성하려면 다음과 같은 측면이 필요합니다.
신원인증 : 사용자의 신원과 진위 여부를 확인하는 과정입니다. ASP.NET에서는 네 가지 유형의 인증이 제공됩니다.
윈도우 인증
양식 인증
입증
맞춤 인증
권한 부여 : 특정 사용자에게 특정 역할을 정의하고 할당하는 프로세스입니다.
기밀성 : 클라이언트 브라우저 및 웹 서버에 대한 암호화가 포함됩니다.
무결성 : 데이터 무결성을 유지합니다. 예를 들어 디지털 서명을 구현합니다.
일반적으로 양식 기반 인증에는 네트워크 구성 파일 편집과 확인 코드가 있는 등록 페이지가 포함됩니다. 네트워크 구성 파일은 다음 코드로 작성할 수 있습니다.
<configuration><system.web> <authentication mode="Forms"> <forms loginUrl ="login.aspx"/> </authentication> <authorization> <deny users="?"/> </authorization></system .web>......</구성>
위 코드 조각에 언급된 login.aspx 페이지에는 인증을 위한 사용자 이름과 비밀번호를 포함하여 파일에서 인코딩하기 어려운 다음 코드가 포함될 수 있습니다.
protected bool authenticate(String uname, String pass){ if(uname == "Tom") { if(pass == "tom123") return true } if(uname == "Dick") { if(pass == " Dick123") 반환 true; } if(uname == "Harry") { if(pass == "har123") 반환 true; } 반환 false;}public void OnLogin(Object src, EventArgs e){ if (authenticate(txtuser.Text, txtpwd.Text)) { FormsAuthentication.RedirectFromLoginPage(txtuser.Text, chkrem.Checked) } else { Response.Write("잘못된 사용자 이름 또는 비밀번호");
인증 프로세스에는 FormsAuthentication 클래스가 사용됩니다.
그러나 Visual Studio를 사용하면 코드를 작성하지 않고도 웹 사이트 관리 도구를 통해 사용자 생성, 인증 및 권한 부여를 원활하게 구현할 수 있습니다. 이 도구를 사용하면 사용자와 역할을 생성할 수 있습니다.
또한 ASP.NET에는 모든 작업을 제어하고 수행할 수 있는 미리 만들어진 로그인 컨트롤 시리즈가 있습니다.
양식 기반 인증을 설정하려면 다음을 수행해야 합니다.
인증 프로세스를 지원하는 사용자 데이터베이스
데이터베이스를 사용하는 웹사이트
사용자 계정
역할
사용자 활동 및 그룹 활동에 대한 제한 사항
사용자 상태 및 기타 정보를 표시하는 사용자 페이지
사용자가 로그인하고, 비밀번호를 검색하고, 비밀번호를 변경할 수 있는 로그인 인터페이스입니다.
사용자를 생성하려면 다음 단계를 수행해야 합니다.
1단계: 웹사이트->ASP.NET 구성을 선택하여 웹 응용 프로그램 관리 도구를 엽니다.
2단계: 보안 옵션을 클릭하세요.
3단계: '양식 기반 인증' 옵션을 선택하여 인증 유형을 '인터넷에서'로 설정합니다.
4단계: '사용자 만들기'를 클릭하세요. 이미 역할을 생성한 경우 이 단계에서 사용자에게 역할을 할당할 수 있습니다.
5단계: 웹사이트를 만들고 다음 페이지를 추가합니다.
환영 페이지
로그인 페이지
등록 페이지
비밀번호 복구 페이지
비밀번호 변경 페이지
6단계: 시작 페이지의 로그인 섹션에서 로그인 상태 제어를 설정합니다. 두 개의 표준 상자(LoggedIn 및 LoggedOut)가 포함되어 있습니다.
LoggedIn에는 로그인한 사용자를 볼 수 있는 옵션이 있고, LoggedOut에는 로그아웃한 사용자를 볼 수 있는 옵션이 있습니다. 속성 창에서 로그인 및 로그아웃 텍스트 속성을 변경할 수 있습니다.
7단계: LoginStatus 컨트롤 아래에 LoginView 컨트롤을 설정합니다. 사용자가 로그인했는지 여부를 반영하는 일부 다른 텍스트 또는 기타 컨트롤(예: 하이퍼링크, 버튼 등)을 설정할 수 있습니다.
이 컨트롤에는 Anonymous 상자와 LoggedIn 상자라는 두 개의 표준 상자가 있습니다. 각 보기를 선택하고 기준 상자를 선택할 때 사용자에게 표시할 텍스트를 작성합니다. 텍스트는 아래 이미지에서 빨간색으로 표시된 부분에 배치되어야 합니다.
8단계: 개발자가 애플리케이션 사용자를 생성합니다. 방문자가 사용자 계정을 만들도록 허용할 수도 있습니다. 이를 달성하려면 등록 페이지로 이동하는 링크를 LoginView 컨트롤 아래에 추가하면 됩니다.
9단계: 등록 페이지에서 CreateUserWizard 컨트롤을 설정합니다. 시작 페이지로 이동할 수 있도록 이 컨트롤의 ContinueDestinationPageUrl 속성을 설정합니다.
10단계: 로그인 페이지를 만듭니다. 이 페이지에서 로그인 컨트롤을 설정하세요. LoginStatus 컨트롤은 자동으로 로그인 페이지에 연결됩니다. 네트워크 구성 파일을 다음과 같이 변경하여 이 기본 설정을 변경할 수 있습니다.
예를 들어 로그인 페이지 이름을 signup.aspx로 지정한 경우 네트워크 구성 파일에 다음 코드 줄을 추가할 수 있습니다.
<configuration> <system.web> <authentication mode="Forms"> <forms loginUrl ="signup.aspx" defaultUrl = “Welcome.aspx” /> </authentication> </system.web></configuration>
11단계: 사용자는 비밀번호를 잊어버리는 경우가 많습니다. PasswordRecovery 컨트롤은 사용자가 이 계정에 다시 로그인할 수 있도록 도와줍니다. 로그인 컨트롤을 선택합니다. 작은 탭을 열고 '템플릿으로 변환'을 선택하세요.
이 컨트롤의 사용자 인터페이스를 사용자 정의하여 로그인 버튼 아래에 하이퍼링크 컨트롤을 배치하세요. 이 컨트롤은 비밀번호 검색 페이지에 연결할 수 있어야 합니다.
12단계: 비밀번호 복구 페이지에서 PasswordRecovery 컨트롤을 설정합니다. 이 컨트롤을 사용하려면 메일 서버가 사용자에게 비밀번호를 보내야 합니다.
13단계: 시작 페이지에 있는 LoginView 컨트롤의 LoggedIn 상자에 비밀번호 변경 페이지에 대한 링크를 설정합니다.
14단계: 비밀번호 변경 페이지에서 ChangePassword 컨트롤을 설정합니다. 이 컨트롤에는 두 가지 보기가 있습니다.
이제 애플리케이션을 실행하고 다양한 보안 작업을 관찰하세요. 웹 애플리케이션 관리 도구로 돌아가서 보안 옵션을 클릭하여 역할을 생성할 수 있습니다. 이 애플리케이션에 대한 일부 역할을 생성하려면 '역할 생성'을 클릭하세요.
사용자에게 역할을 할당하려면 '사용자 관리'를 클릭하세요.
SSL(Secure Sockets Layer)은 보안 연결을 보장하는 데 사용되는 프로토콜입니다. 브라우저는 SSL을 사용하여 서버로 전송되는 모든 데이터를 암호화하고 서버의 모든 데이터를 해독합니다. 동시에 서버는 Liangzi Browser의 모든 데이터를 암호화하고 해독합니다.
보안 연결을 위한 URL은 HTTP 프로토콜 대신 HTTPS 프로토콜을 사용합니다. 보안 연결을 사용하는 브라우저에도 작은 자물쇠가 표시됩니다. 브라우저가 SSL을 사용하여 서버와 적극적으로 통신하면 서버는 서버 자체를 인증하기 위해 보안 인증서를 보냅니다.
SSL을 사용하려면 신뢰할 수 있는 인증 기관(CA)에서 디지털 보안 인증서를 구입하고 해당 인증서를 네트워크 서버에 설치해야 합니다. 다음은 평판이 좋은 신뢰할 수 있는 인증 기관입니다.
www.verisign.com
www.geotrust.com
www.thawte.com
SSL은 모든 주요 브라우저와 서버에 내장되어 있습니다. SSL을 활성화하려면 디지털 인증서를 설치해야 합니다. 다양한 디지털 인증서의 강도는 암호화 프로세스 중에 생성된 키의 길이에 따라 다릅니다. 키가 길수록 인증서와 연결의 보안이 더욱 강화됩니다.
힘 | 설명하다 |
---|---|
40비트 | 대부분의 브라우저를 지원하지만 해킹하기 쉽습니다. |
56비트 | 40비트보다 더 강력합니다. |
128비트 | 크랙하기는 어렵지만 모든 브라우저가 이를 지원하는 것은 아닙니다. |