베원

jsRSA (form 전송 암호화)

jsrsa.png

안녕하세요.

질문답변 게시판을 보다가 form 전송시 평문으로 되는 문제를 보고 생각나서 만들어봤습니다.

별건 아니구요.

 

3667118519_1515077038.2457.png

이렇게 전송하는 놈을

 

3667118519_1515077043.8193.png

이렇게 바꾸는 겁니다.

 

중간에 프록시나 각종 수단으로 정보를 가로채는것을 막아줍니다.

ssl이 그런 역할을 해주고는 있지만, ssl을 사용할 수 없는 환경에서 사용할 수 있도록 했습니다.

 

 

 

사용방법은 간단합니다.

1. 첨부된 압축을 해제하시고, 그누보드의 extend폴더와 js폴더에 각각 파일을 넣어주세요.

2. 사용하실 스킨의 head_sub.php 파일에 첨부된 head_sub.php 파일의 내용을 적절하게 넣어주세요.

3. 아래 코드를 암호화할 form 안에 넣어주세요.

[code]

<input type="hidden" name="rsa_encrypted">

[/code]

4. 아스날

5. /extend/rsa_encrypt.php 파일을 열어서 RSA 키를 넣어주세요. 방법은 주석으로 첨부했습니다.

 

 

그누보드상의 로그인, 회원가입 부분에서 테스트를 완료했습니다.

혹시 사용하시다 문제가 있으시다면 댓글 달아주시면 감사하겠습니다.

 

jsencrypt.js 사용합니다.

첨부파일

jsrsa.png (2.4 KB)
0회 2018-01-04 23:54 포인트 차감 10
jsRSA.zip (19.1 KB) 116회 2018-01-04 23:54 포인트 차감 10
|

댓글 32개

적용시 속도는 어떤가요?
체감상의 차이는 없었습니다만 정확한 시간은 테스트를 해봐야 할 것 같습니다.
이 정도 연산으로 속도가 크게 차이가 나지는 않을 것 같습니다.
멋지네요. 감사합니다.
조심히 써보도록 하겠습니다. :)
자료감사합니다!
아스날 ㅋㅋㅋ
올해는 좀...
안녕하세요 ㅎㅎ 구너입니다.
4스날이 칭찬이 되어버린게 안타까워요 ㅠㅠ
오..이런 프로그램을...대단하십니다~ 보안서버가 필요가 없겠네요 ㅎ
사실 실제 SSL과는 작동 방식이 많이 다르긴 합니다.
SSL을 설치 못하는 환경에서 임시 방편 정도로 활용하는게 제일 좋아보입니다ㅎ
좋은 자료 감사합니다~!
좋은자료 감사합니다 ^^
말씀하신 대로 설치했습니다. 그런데 제대로 작동하고 있는지를 어떻게 알 수 있을까요?
fiddler와 같은 툴을 이용해 확인해보세요~
기존의 아웃로그인 및 멤버 로그인 스킨에 이렇게 설치하는 것이 맞나요?

<input type="hidden" name="rsa_encrypted">


<input type="hidden" name="url" value="<?=$outlogin_url?>">


이렇게 하니까, 비밀번호가 공백이면 안된다고 로그인이 안되고 계속 에러가 나네요ㅜㅜ
설치를 잘못 하신 듯 합니다. extend, js 폴더에 제대로 넣은게 맞나요?
좋은 자료, 고맙습니다.

평소 게시판에 적용해 보고 싶었던 기능입니다.
게시판에 적용해보니 아래와 같이 에러가 발생합니다. (그누보드 5.2.9.8.1 )
혹시 해결 방안이 있을지 질문 드립니다.

설치는 아래와 같이 했습니다.
extend/rsa_encrypt.php (새 키값 넣음)
js/jsencrypt.min.js 와 jsrsa.js
head.sub.php (<script.. 세 개 넣음)
skin/basic/write.skin.php (<form 부분에> <input type="hidden" name="rsa_encrypted"> 넣음)

글쓰기 버튼을 누르면 아래와 같이 에러 메세지가 뜹니다.
http://xxx.xx/gnu5/bbs/write_update.php

올바른 방법으로 이용해 주십시오

Warning: base64_decode() expects parameter 1 to be string, array given in /home/hosting_users/visors/gnu5/extend/rsa_encrypt.php on line 27

Warning: Cannot modify header infomation - headers already sent by (output started at /home/hosting_users/visors/gnu5/extend/rsa_encrypt.phpphp:27) in /home/hosting_users/visors/gnu5/common.php on line 625
Warning: Cannot modify header infomation - headers already sent by (output started at /home/hosting_users/visors/gnu5/extend/rsa_encrypt.phpphp:27) in /home/hosting_users/visors/gnu5/common.php on line 627 (~ 631 까지)
사용하시는 스킨을 알려주셔야 할 것 같습니다~
여분필드 등 추가 기능을 사용하는 게시판인 것으로 보입니다.
여분필드를 사용하면 안되는건가요???

여분필드 사용한 게시판에서는 똑같이 에러가 나오네요~ ^^;;;
<?php echo captcha_html(); ?>

자동등록방지 에서 글체크 오류납니다.
등록글이 틀리다고 나오네요..
자동등록방지가 두 번 호출되어 실제 보여지는 이미지와 서버 세션이 물고 있는 값이 다른 것이 아닌가 싶습니다.
지금 올려져있는 자료가 글쓰기 부분에서 자동등록방지 문제가 있어서 수정하고 올려드린 자료인데 위와 같은 문제였습니다.
자동등록방지가 두 번 호출되는 것이 아닌지 확인해보시기 바랍니다.
저도 같은 오류때문에 고민했는데
디버깅을 해보니 head_sub.php에 넣은 부분이 로딩이 되지 않아서 생기는 문제입니다.
저는 아미나를 쓰고 있는데 루트에 있는 head_sub.php에 넣어서 해결했습니다. ^^
와... 정말 감사합니다!
대박이네요~~ ^^;;; 감사합니다.
본문의 3번 작업을 해주셔야 합니다.
[http://sir.kr/data/editor/1906/b60ef6ccdc6b704f48b4b443a04e560f_1559694259_1876.png]

정상적으로 됩니다! 감사합니다.

응용해서 아작스도 했네요.
좋은 자료 감사합니다!
로그인부분에 넣을려는데 어디에 넣어야될까요?
확인이 늦었습니다. login.skin.php 부분에 넣으시면 될듯합니다.
찾던 자료입니다.
감사합니다!!

댓글 작성

댓글을 작성하시려면 로그인이 필요합니다.

로그인하기
🐛 버그신고