Search Results for '보안서버'

1 POSTS

  1. 2010.08.29 [펌] 영역별 보안서버(https) 적용방법
한국인터넷진흥원(kisa) 웹모니터링 사무국에서 보안서버 적용하지 않았다고 메일이 왔다. 관련 정보를 찾아보았으나 구체적인 내용이 없다. verisign꺼는 연 80만원씩이나 하고 그 아래꺼가 절반, 그리고 kisa꺼가 10만원선이라한다. 이거 돈벌려는 수작인지 정말 헷갈린다. 

아래내용은 테크노트에 올라온 보안서버 적용방법에 대한 내용이다. 
출처 : http://www.technote.co.kr/php/technote1/board.php?board=notice&page=2&command=body&no=35


 " 영역별 보안서버 적용방법"

 보안서버란

접속자 pc 의 웹부라우저와 웹서버 사이의 데이터 전송을 암호화하여 정보유출을 차단할 수 있는 서버입니다.
즉 전송 내용을 모두 암호화 시켜서  그 암호화된 내용으로 통신을 하는 서버라고 할 수 있겠습니다.
일반적으로 SSL 웹서버 인증서 방식을 사용하며  다른 응용프로그램 방식들도 사용됩니다. 
자세한 설명  http://www.kisia.or.kr/secureserver/index.php  참조


 보안서버 구축

보안서버 구축 방법에 대해서는 여기서 다루지 않겠습니다.
웹호스팅 서비스를 이용하신다면 해당 호스팅 업체에 직접 요청하시면 됩니다.
자체 서버를 운용하신다면 보안서버 전문업체와 상담을 하시기 바랍니다.


 홈페이지내의 보안서버 적용 영역

1, 회원가입
2, 회원로그인
3, 쇼핑몰- 주문서
4, 기타 개인정보가 전송되는 폼양식

보안서버 적용 페이지는 출력속도가 느리므로 꼭 필요한 영역에만 적용하는 것이 좋습니다. 

 

 테크노트에 보안서버 적용
 
보안서버가 구축되면 보안 접속을 위한 별도의 URL 형식이 주어 집니다.
보통  https://abcde.co.kr:1443 와 같이  https://도메인:포트번호 형태로 이뤄 집니다.

테크노트에서 보안서버를 적용하려면 개인정보가 입력된 페이지를 전송할때
이러한 보안서버 접속 URL 형식으로 전송 되도록 해 주면 되는 것입니다.


 


 
이하 설명은

도메인 주소 : http://abcde.co.kr
테크노트 폴더 : http://abcde.co.kr/technote
보안서버 접속형식 : https://abcde.co.kr:1443

이라고 가정한 설명입니다. 

아래 내용을 모두 적용해 주어야 하는 것은 아니고,
홈페이지 구성 형태에 따라, 사용되거나 사용되지 않는 영역일 것이니
현재 사용하고 있는 영역인 곳만 적용을 해 주면 되겠습니다.




 

 회원관리 스킨의 회원등록 폼
    소스 : technote/skin_member/mem_standard/regist_form.php


▨ regist_form.php 소스에서

<img src='<?=$this_skin?>/button/button_write_ok.gif' style='cursor:pointer' border=0 onclick="RegInput_checking()">

태그를 찾아서 바로 윗줄에

<input type=checkbox name=secure_send value=1>보안접속

을 새로 추가합니다. (전송 버튼 이미지 부분입니다.)

▨ 전송 버튼 클릭시 입력값을 체크하는 자바스크립트 부분입니다. (원본 62번줄)
     녹색으로 표시된 코드만 새로 추가해 주면 됩니다.

function RegInput_checking(){
   var MemBerForm=document.MemberRegForm;

   // ....
   // ....
   //.... 

   if(document.MemberRegForm.secure_send.checked==true){ // 보안접속 에 체크한 경우
      document.MemberRegForm.action="https://abcde.co.kr:1443<?=$_SERVER[PHP_SELF]?>";
   }
   else{
      document.MemberRegForm.action="<?=$_SERVER[PHP_SELF]?>";
   }

   MemBerForm.submit(); // 폼 전송
}




 

 영역 : 회원관리 스킨의 회원로그인 폼
    소스 : technote/skin_member/mem_standard/login_form.php
 

▨ login_form.php  소스에서

<label for='passRM'>비밀번호 기억</label>

태그를 찾아서(원본 73번줄) 바로 아랫줄에

<input type=checkbox name=secure_send value=1>보안접속

태그를 추가합니다. 


▨ 전송 버튼 클릭시 입력값을 체크하는 자바스크립트 부분입니다.
    녹색으로 표시된 코드만 새로 추가해 주면 됩니다.

function inputcheck(){

   if(myloginform.m_id.value==''){
      alert('아이디를 입력하십시오.');
      myloginform.m_id.focus();
      return false;
   }
   if(myloginform.m_pass.value==''){
      alert('비밀번호를 입력하십시오.');
      myloginform.m_pass.focus();
      return false;
   }

   if(document.myloginform.secure_send.checked==true){ // 보안접속 에 체크한 경우
      document.myloginform.action="https://abcde.co.kr:1443<?=$_SERVER[PHP_SELF]?>";
   }
   else{
      document.myloginform.action="<?=$_SERVER[PHP_SELF]?>";
   }


}





 

  iframe 형태의 회원 로그인폼
     소스 : technote/util_iframe_loginform.php 


▨ util_iframe_loginform.php  소스에서

<tr>
   <td align=right><input type=checkbox name=rmb_pass value=1<?=$rmb_check?>> </td>
   <td><img src='<?=$CONFIG[img_url]?>/online/text_pass_rmb.gif' border=0></td>
</tr>


위와 같은 태그를 찾아서

<tr>
   <td align=center colspan=2>
      <input type=checkbox name=rmb_pass value=1<?=$rmb_check?>> <img src='<?=$CONFIG[img_url]?>/online/text_pass_rmb.gif' border=0>
      <input type=checkbox name=secure_send value=1>보안접속
   </td>
</tr>


으로 수정합니다



▨ 전송 버튼 클릭시 입력값을 체크하는 자바스크립트 부분입니다.
    녹색으로 표시된 코드만 새로 추가해 주면 됩니다.

function TnTinput_check(FormName){
   if(FormName.m_pass.value==''){
      alert('비밀번호를 입력하십시오.');
      FormName.m_pass.focus();
      return false;
   }

   if(document.TnTLoginForm.secure_send.checked==true){ // 보안접속 에 체크한 경우
      document.TnTLoginForm.action="https://abcde.co.kr:1443/technote/member.php";
   }
   else{
      document.TnTLoginForm.action="member.php";
   }


}




 

  include 형태의 회원 로그인폼
     소스 : technote/util_include_loginform.php


▨ util_include_loginform.php  소스에서

<label for='rmb_passid'>비밀번호 기억</label>

위와 같은 태그를 찾아서 바로 아랫줄에

<input type=checkbox name=secure_send value=1>보안접속

태그를 추가합니다.


▨ 전송 버튼 클릭시 입력값을 체크하는 자바스크립트 부분입니다. 
    녹색으로 표시된 코드만 새로 추가해 주면 됩니다.

function TnTtype_check(FormName){
   if(FormName.m_id.value==''){alert('아이디를 입력하십시오.'); FormName.m_id.focus(); return false;}
   if(FormName.m_pass.value==''){alert('비밀번호를 입력하십시오.'); FormName.m_pass.focus(); return false;}

   if(document.TnTLoginForm.secure_send.checked==true){ // 보안접속 에 체크한 경우
      document.TnTLoginForm.action="https://abcde.co.kr:1443/technote/member.php";
   }
   else{
      document.TnTLoginForm.action="member.php";
   }


}






  iwindow 레이어 형태 로그인폼
     소스 : skin_board/a_standard/iwindow/iwindow_login.php
 


▨ iwindow_login.php 소스에서

<td>&nbsp;</td>
<td colspan=2><input type=checkbox name=rmb_pass id='r_chk' value=1<?=$rmb_check?>> <label for='r_chk'>비밀번호 기억</label></td>


위와 같은 태그를 찾아서

<td colspan=3>
  <input type=checkbox name=rmb_pass id='r_chk' value=1<?=$rmb_check?>> <label for='r_chk'>비밀번호 기억</label>
  <input type=checkbox name=secure_send value=1>보안접속
</td>

으로 수정합니다. 


▨  전송 버튼 클릭시 입력값을 체크하는 자바스크립트 부분입니다.
    녹색으로 표시된 코드만 새로 추가해 주면 됩니다.

function value_check(m_id,m_pass){

   if(m_id.value==''){alert('아이디를 입력하십시오.'); m_id.focus(); return false;}
   if(m_pass.value==''){alert('비밀번호를 입력하십시오,'); m_pass.focus(); return false;}

   if(document.loginPassform.secure_send.checked==true){ // 보안접속 에 체크한 경우
      document.loginPassform.action="https://abcde.co.kr:1443<?=$_SERVER[PHP_SELF]?>";
   }
   else{
      document.loginPassform.action="<?=$_SERVER[PHP_SELF]?>";
   }


}






 쇼핑몰 주문서
     소스1 : skin_shop/standard/2_view_order/order_default.php
 (주문서 입력폼)
     소스2 : skin_shop/standard/6_public_paper/order_send_after.php (주문서 전송직후 주문내용 확인 페이지)


▨ skin_shop/standard/2_view_order/order_default.php 소스에서

    <a onclick="s_od_form_submit()"><img src="<?=$shop_this_skin?>/s_img/button/squar_confirm.gif" border=0></a>

    위와 같은 태그(전송버튼)를 찾아서 바로 윗줄에

    <input type=checkbox name=secure_send value=1>보안접속

    태그를 삽입합니다. 

    다음

     전송 버튼 클릭시 입력값을 체크하는 자바스크립트 부분입니다. 
     녹색으로 표시된 코드만 새로 추가해 주면 됩니다.

    // 전송전 - 입력값 확인
    function s_od_form_submit(){
       ....
       ....
       ....

       if(document.shop_order_form.secure_send.checked==true){ // 보안접속 에 체크한 경우
          document.shop_order_form.action="https://abcde.co.kr:1443<?=$this_url?>";
       }
       else{
          document.shop_order_form.action="<?=$this_url?>";
       }


       this_form.submit();
    }


 

▨ skin_shop/standard/6_public_paper/order_send_after.php 소스에서

    <form name='shop_order_confirm' method=post action="<?=$this_url?>">
 
     를
 
    <form name='shop_order_confirm' method=post
    action="http://abcde.co.kr/technote/board.php?board=tnshopmain&command=shop&view=6_public_paper">
    와 같이 일반 url 형태로 지정해 줍니다. 다음단계로 이어지는 결제 과정에 https 가 적용되지 않게
    끊어 주기 위합니다.
 


 
 테크노트6.x 버전   의 경우  technote6/lib.php 소스에서
 
    function from_thishome($phpself=""){
      if(eregi("^http://$_SERVER[HTTP_HOST]$phpself",$_SERVER['HTTP_REFERER'])) return 1;
     }

 
    위와 같은 코드를 찾아서
 
     function from_thishome($phpself=""){
       if(eregi("^(http|https)://$_SERVER[HTTP_HOST]$phpself",$_SERVER['HTTP_REFERER'])) return 1;
     }

 
     와 같이 수정해 주어야 합니다.
 
 

 기타 지정

* 회원관리설정 - [7-5] 로그인 후 출력될 페이지 URL
* 회원관리설정 -[7-6] 로그아웃 후 출력될 페이지 URL
  을
   http://technote/board.php?board=........
   와 같이 http:// url 형식으로 지정해 줍니다.

* 홈페이지 내에서 메인홈페이지로 링크되는 메뉴 또한   
   http://abcd.co.kr
  와 같이 http:// url 형식으로 지정해 줍니다.
  일반적으로 홈페이지 좌 상단에 위치하는 홈페이지 로고에 연결된 링크를 말합니다.

* 그 외 홈페이지에서 자주 사용하는 대표적 메뉴의 링크를
   http://abcd.co.kr
   와 같이 http:// url 형식으로 지정해 줍니다.

이렇게 해 주는 이유는
상대경로 형식으로만 링크가 되어 있는 경우, https://  형태의 보안접속 연결 이후의
상대경로는 계속 https:// 로 적용되기 때문에 이를 끊기 위함입니다.
https:// 형식이 계속 유지 되어도 문제될 것은 없지만 속도가 많이 느립니다 
 
---------------------

위의 보안서버 적용 방법 설명에는 보안접속 적용 여부를 선택하는 체크박스를 삽입하고
체크 여부에 따라 보안접속이 적용되게 했는데
만약,  체크박스 필요 없이 곧바로 보안서버 적용되게 하려면
<form .....    action="보안서버 접속형식 url">
과 같이 폼태그를 작성하면 됩니다. 이 경우 자바스크립트 부분도 수정할 필요가 없습니다

'개발노트' 카테고리의 다른 글

ubuntu 10.04 LTS에 JDK + eclipse설치하기  (0) 2011.04.20
eclipse svn 계정변경  (0) 2011.03.15
URL Filtering용 정규식을 작성하자  (0) 2010.07.21
java Naming rule 링크모음  (0) 2010.06.02
Cookie Class 정리  (0) 2010.06.01