Click or drag to resize

웹 페이지간 데이터 암호화

웹페이지 사이에 다수의 데이터를 암호화해 전송하는 경우 보다 편리하게 암호화된 데이터를 액세스할 수 있도록 NVC(Name-Value Collection) 오브젝트를 제공합니다.

암호화 해서 전송하기

웹페이지 간에 많은 수의 데이터를 전송하는 경우 각각의 데이터에 대해 Encrypt를 호출해 암호화하고, Dencrypt를 호출해 복호화하고 오류를 검출해야 합니다. 이렇게 개발하는 방법은 매우 불편할 뿐만 아니라 ASP 페이지 코드 자체도 매우 복잡하게 되는 문제가 있습니다. Encryptor 오브젝트는 변수 값의 편리한 암호화/복호화를 위해 EncryptNVC 메서드와 DecryptNVC 메서드를 제공합니다.

다음 예제는 id, name, age 값을 한 번에 암호화해서 param 파라미터의 값으로 전달하는 것을 보여 줍니다. GET 파라미터로 전달하는 경우는 반드시 ASP의 Server.URLEncode를 사용해 GET 파라미터로 사용될 수 있도록 인코딩 작업을 추가로 해야 하는 것을 잊지 마십시오. 폼 값으로 전달하는 경우라면 암호화된 문자열을 그대로 사용할 수 있습니다.

ASP
<%
Set Encryptor = Server.CreateObject("TABSUpload4.Encryptor")

'마스터 암호와 솔트 값으로 초기화합니다.
Encryptor.InitializeFromIni "C:\MyPassword.ini"

Set nvc = Server.CreateObject("TABSUpload4.NameValueCollection")
nvc.Add "id", "hong123"
nvc.Add "name", "홍길동"
nvc.Add "age", "20"

encnvc = Encryptor.EncryptNVC(nvc)
uencnvc = Server.URLEncode(encName)
%>
<a href="nextpage.asp?param=<%=uencnvc%>">다음 페이지</a>

전달 받은 데이터 복호화 하기

위 예제에서 전달 받은 암호화 데이터는 DecryptNVC 메서드를 사용해 간단하게 복호화할 수 있습니다. 데이터 변조 등으로 복호화 작업에서 발생한 오류는 아래 예제와 같이 Err 오브젝트를 사용해 감지할 수 있으며 복호화 오류시는 비즈니스 로직 처리 없이 오류 페이지로 이동하는 것이 올바릅니다. 성공적으로 복호화가 이루어진 후 NVC 오브젝트를 사용해 데이터를 액세스할 수 있습니다.

ASP
Set Encryptor = Server.CreateObject("TABSUpload4.Encryptor")

'마스터 암호와 솔트 값으로 초기화합니다.
Encryptor.InitializeFromIni "C:\MyPassword.ini"

On Error Resume Next
Set nvc = Encryptor.DecryptNVC(Request.QueryString("param"))
If Err.Number <> 0 Then
    '복호화 오류 발생
    Response.Redirect "accessdenied.asp"
End If

'NVC 오브젝트를 사용한 데이터 참조
id = nvc("id")
name = nvc("name")
age = nvc("age")

쿠키 데이터 암호화하기

쿠키에 기록되는 데이터 역시 암호화해서 쿠키에 기록할 수 있습니다. NVC 오브젝트를 사용해서 쿠키에 저장할 데이터를 구성한 후 EncryptNVC 메서드를 호출해 암호화한 후 ASP의 Response.Cookies 오브젝트를 사용해 쿠키에 기록할 수 있습니다.

ASP
Set Encryptor = Server.CreateObject("TABSUpload4.Encryptor")

'마스터 암호와 솔트 값으로 초기화합니다.
Encryptor.InitializeFromIni "C:\MyPassword.ini"

Set nvc = Server.CreateObject("TABSUpload4.NameValueCollection")
nvc.Add "id", "hong123"
nvc.Add "name", "홍길동"
nvc.Add "age", "20"

encnvc = Encryptor.EncryptNVC(nvc)
Response.Cookies("MyCookies") = encnvc

쿠키에서 값을 읽는 경우는 Request.Cookies 오브젝트로 암호화된 쿠키를 가져온 후 DecryptNVC 메서드를 호출해 복호화한 후 NVC 오브젝트를 사용해 데이터를 액세스할 수 있습니다.