jsRSA (form 전송 암호화)
안녕하세요.
질문답변 게시판을 보다가 form 전송시 평문으로 되는 문제를 보고 생각나서 만들어봤습니다.
별건 아니구요.

이렇게 전송하는 놈을

이렇게 바꾸는 겁니다.
중간에 프록시나 각종 수단으로 정보를 가로채는것을 막아줍니다.
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 사용합니다.
첨부파일
|
댓글 작성
댓글을 작성하시려면 로그인이 필요합니다.
로그인하기
댓글 32개
이 정도 연산으로 속도가 크게 차이가 나지는 않을 것 같습니다.
아스날 ㅋㅋㅋ
올해는 좀...
4스날이 칭찬이 되어버린게 안타까워요 ㅠㅠ
SSL을 설치 못하는 환경에서 임시 방편 정도로 활용하는게 제일 좋아보입니다ㅎ
<input type="hidden" name="rsa_encrypted">
<input type="hidden" name="url" value="<?=$outlogin_url?>">
이렇게 하니까, 비밀번호가 공백이면 안된다고 로그인이 안되고 계속 에러가 나네요ㅜㅜ
평소 게시판에 적용해 보고 싶었던 기능입니다.
게시판에 적용해보니 아래와 같이 에러가 발생합니다. (그누보드 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 까지)
여분필드 등 추가 기능을 사용하는 게시판인 것으로 보입니다.
여분필드 사용한 게시판에서는 똑같이 에러가 나오네요~ ^^;;;
자동등록방지 에서 글체크 오류납니다.
등록글이 틀리다고 나오네요..
지금 올려져있는 자료가 글쓰기 부분에서 자동등록방지 문제가 있어서 수정하고 올려드린 자료인데 위와 같은 문제였습니다.
자동등록방지가 두 번 호출되는 것이 아닌지 확인해보시기 바랍니다.
디버깅을 해보니 head_sub.php에 넣은 부분이 로딩이 되지 않아서 생기는 문제입니다.
저는 아미나를 쓰고 있는데 루트에 있는 head_sub.php에 넣어서 해결했습니다. ^^
정상적으로 됩니다! 감사합니다.
응용해서 아작스도 했네요.
감사합니다!!