OpenSSL for HTTP 게시판에 적용하는 방법 좀 알려주세요. 채택완료
안녕하세요.
아파치님께서 올려주신 "OpenSSL for HTTP 에러 수정판"을 설치했습니다.
http://sir.co.kr/g5_plugin/503?sfl=wr_subject%7C%7Cwr_content&stx=%EB%B3%B4%EC%95%88%EC%84%9C%EB%B2%84" target="_self">http://sir.co.kr/g5_plugin/503?sfl=wr_subject%7C%7Cwr_content&stx=%EB%B3%B4%EC%95%88%EC%84%9C%EB%B2%84
원본은 letsgolee님의 "OpenSSL for Http-보안서버기능을 하는 암호화 프로그램" 입니다.
http://sir.co.kr/bbs/board.php?bo_table=g5_plugin&wr_id=14" target="_self">http://sir.co.kr/bbs/board.php?bo_table=g5_plugin&wr_id=14
홈페이지에 보안서버를 구축하고 싶어서 OpenSSL과 스마일서브 보안서버 두개를 설치해봤는데
둘 다 홈페이지에 적용하니 잘 작동이 됩니다.
그런데 전 이걸 게시판에도 적용하고 싶습니다.
게시판에 필드를 추가해서 개인정보 입력하는게 더 있어서요.
댓글에 나온 설명을 참고해도 기본지식이 없는 저로써는 되지를 않습니다.
이거 성공하신 분 계신거 같은데 설정 방법 아시는분 계시면 답변 좀 부탁드립니다.
감사합니다.
답변 2개
"OpenSSL for HTTP" 를 게시판에 적용하는 일을 너무 어렵게만 생각하실 이유가 없습니다.
어차피 "OpenSSL for HTTP" 의 기능이 클라이언트가 서버로 정보를 넘길 때 암호화하는 것이기 때문에
이 기능이 잘 작동되도록 하면 되는 것입니다.
그런 면에서 letsgolee님이 공개해 주신 "OpenSSL for HTTP" 프로그램은 매우 훌륭한 도구입니다.
먼저, common.php 파일에
-----------------------
include_once G5_LIB_PATH.'/http_openssl/http_openssl.lib.php';
http_openssl_load();
-----------------------
이런 식으로 http_openssl 로드되어 실행되고 있다고 전제할 때
skin/member/basic/login.skin.php 에 적용된 것을 그대로 응용하면 됩니다.
암호화하길 원하는 게시판 스킨의 write.skin.php 파일을 열어서 상단에 아래와 같이 추가합니다.
</font></p><p><font face="Courier New">if (!defined('_GNUBOARD_')) exit; // 개별 페이지 접근 불가</font></p><p><font face="Courier New">http_openssl_simple_prepare(); //추가한 코드</font></p><p><font face="Courier New">
그리고 하단의 자바스크립트 부분 fwrite_submit(f) 함수 내용의 맨 아래 부분에
return true; 를 아래와 같이 수정합니다.
</font></p><p>//return true; //이부분 대신 아래부분을 사용함</p><p><?php http_openssl_js_form_submit('f'); ?></p><p><font face="Courier New">
참고로 skin/member/basic/register_form.skin.php 에 적용된 것처럼
view 페이지나 수정하는 페이지에 나타나는 정보도 암호화할 필요가 없다면 위와 같이 하면 됩니다.
위와 같이 하면 write_update.php 에서 해당 정보를 저장할 때 필요한 데이타는 common.php 파일의 http_openssl_load(); 함수에서 알아서 다 복호화해 줍니다.
정말 잘 만든 프로그램이죠.^^
위에서도 말했듯이 클라이언트에서 서버로 넘어가는 정보를 암호화하는 것이 "OpenSSL for HTTP" 의 주된 역할임을 고려할 때 수정할 때나 view 페이지에서 정보를 열람하는 부분까지 암호화할 필요는 없다고 생각합니다.
그리고 개인적으로는 letsgolee님이 공개해 주신 "OpenSSL for HTTP" 프로그램이 응용해서 적용하기에 더 편리하고 좋은 것 같습니다.
예제로 아래의 링크는 제가 지인에게 만들어준 상담폼인데 "OpenSSL for HTTP" 프로그램이 적용되어 있습니다. 소스보기를 하시면 확인하실 수 있습니다.
http://www.bankpark.co.kr/loan/loan.php?lid=apply">http://www.bankpark.co.kr/loan/loan.php?lid=apply
답변에 대한 댓글 2개
알려주신대로 하면 글수정 페이지 소스보기에서 value값이 암호화가 된게 아니라 그냥 입력한 내용이 나오는데 이렇게 보여도 제대로 적용된게 맞는건가요?
댓글을 작성하려면 로그인이 필요합니다.
네, 맞습니다.
어차피 "OpenSSL for HTTP" 의 주된 기능이 클라이언트가 입력한 정보를 암호화하여 서버로 넘기고 이것을 복화하 하는 것이기 때문에 글 수정페이지에서 해당 정보를 굳이 암호화하여 보여줄 필요는 없습니다.
그러므로 http_openssl_simple_prepare(); 기능만으로도 충분하다고 생각합니다.
masahide님이 작업하신 내용이 letsgolee님께서 알려주신 내용과 맞다면 그대로 쓰시면 됩니다.
참고로 암호화된 데이타가 제데로 넘어와 복호화되고 있는지 확인하시려면
common.php 파일에 아래와 같이 $test_post = $_POST; 를 추가하신 다음
</font></p><p><font face="Courier New">$test_post = $_POST;</font></p><p><font face="Courier New">include_once G5_LIB_PATH.'/http_openssl/http_openssl.lib.php';
http_openssl_load();</font></p><p><font face="Courier New">
./bbs/write_update.php 파일 상단에 $test_post 와 $_POST 를 구분해서 비교해 보세요.
</font></p><p><font face="Courier New">//암호화된 데이타</font></p><p><font face="Courier New">foreach($test_post as $key=>$val){</font></p><p><font face="Courier New"> echo $key.':'.$val.'
';</font></p><p><font face="Courier New">}</font></p><p><font face="Courier New">echo '
';</font></p><font face="Courier New"><p> </p><p><font face="Courier New">//복호화된 데이타</font></p><p><font face="Courier New">foreach($_POST as $ky=>$vl){</font></p><p><font face="Courier New"> echo $ky.':'.$vl.'
';</font></p><p><font face="Courier New">}</font></p><p> </p><p>exit;</p></font>
<p><font face="Courier New">
답변에 대한 댓글 2개
알려주신 내용을 적용하긴 했는데 어디서 뭘 확인하는건지는 잘 모르겠습니다.
소스에서 봐도 차이가 없어보이구요.
하지만 알려주신 내용으로 해도 게시판에 적용한게 문제가 없다고 하시니 마음이 홀가분하네요.
다시한번 감사합니다.
아래의 링크를 참고해주세요.
http://sir.co.kr/pg_talk/9323
댓글을 작성하려면 로그인이 필요합니다.
답변을 작성하려면 로그인이 필요합니다.
로그인
알려주신대로 적용해 봤습니다.
저도 어제부터 이것 저것 적용해 봤는데 비슷하게 적용도 했었던거 같습니다.
전 글 수정할때 회원정보 수정하는것 처럼 암호화가 안되길래 제대로 적용이 안될줄 알고 계속 이것 저것 시도해보다가 문의글까지 남긴거였습니다.
그런데 선우善友님 답변을 보면 글 수정시 암호화가 되지 않아도 적용이 된거란 말씀이시지요?
그럼 이대로 써도 문제 없는거겠지요?