포럼
XpressEngine 에서 HTTP Request 보안에 관해
2016.03.13 17:31
안녕하세요. XE 를 예전부터 많이 사용해 온 사람입니다. 너무 프레임워크에 의존하는 것보다, 제가 XE 같은 CMS 를 직접 만들어보면 어떨까 하고
Node.js 로 만들기 시작한 지 한 3주 정도 흘렀네요. XE 처럼 모듈식으로 게시판, 페이지, 회원 등 핵심적인 것만 간단하게 만들었습니다. 이제 샘플 홈페이지만 만들어 놓으면 되는데요 - 궁금한 것이 있습니다.
XE 에서 각종 HTTP 요청들 있잖아요. GET 요청은 크게 상관 없겠고, POST, DELETE, PUT 등 요청을 받을 때 보안을 어떻게 하는지 궁금합니다. 예를 들어서 특정 게시판을 삭제하는 DELETE 요청이 있다고 해 봅시다. 정상적이라면 admin 화면에서 게시판을 삭제해아 하지만, 알다시피 외부에서도 얼마든지 DELETE 요청을 보낼 수 있습니다. 파이썬이든, 자바든 활용해서 말이죠.
/admin/delete/board 라는 주소로 특정 게시판 mid 값을 데이터로해서 DELETE 요청을 보내면, 게시판을 삭제하게 된다고 쳐 봅시다.
외부에서의 요청을 막기 위해 어떤 식으로 코드를 짜야할까요? 예를 들어서 지금 제 게시판 삭제 코드는 클라이언트에서 이렇게 되어 있습니다.
$('.btn-delete').click(function(){
var confirm = prompt('게시판을 삭제하면 연결된 모든 게시물, 댓글, 첨부파일이 같이 삭제됩니다. 삭제하려는 게시판의 mid 값을 입력해 주세요.');
if (confirm == $(this).attr('id')) {
$.ajax({
url: location.href+"/delete/"+$(this).attr('id'),
type: "DELETE",
success: function (data) {
if (data) {
alert(data);
location.reload();
}
}
});
} else {
alert('게시판의 mid 값이 일치하지 않습니다.');
return false;
}
})
게시판 mid 값을 입력해야 삭제하는 것은 뭐 그냥 일련의 실수 방지책이고, 어쨌든간에 저 주소로 delete 요청만 보내면 게시판이 삭제될 것 같습니다. 게시판이 삭제되면 연결된 문서, 댓글, 자료 모두 삭제될텐데. 이 경우 서버 쪽에서 보안을 어떻게 해야할까요? 제가 생각하기엔 요청을 보낸 아이디를 검증해야 할 것 같은데, req.user.id == 'admin' ? 이런 식으로 해서 조건에 부합하지 않으면 처리하지 않는 것이 방법인가요? 모든 라우터에 이런 식으로 처리를 해야하나요? XE 는 오래되어서 보안도 그만큼 철저할 것 같은데, 어차피 PHP 로 개발하든 Node.js 로 개발하든 기본적인 구조는 같을 것 같습니다. XE 는 어떤식으로 이런 외부 HTTP 요청을 방지할까요?
댓글 2
글쓴이 | 제목 | 최종 글 |
---|---|---|
BJ람보 | 4월 12일 방송 예고~아프리카 XE관련, 누리고관련 개발이야기, 초급이야기. | |
라쳇YT | PHP7 with XE3.0 [5] | 2016.04.08 by KimTAJO |
본능 | XE 초짜인데 메뉴바랑 타이틀바 수정 방법좀 알려주세요 [1] | 2016.04.02 by 기진곰 |
Flolida | Node.js 로 간단한 CMS 를 만들어 보았습니다. [3] | 2016.04.01 by 이온디 |
jake | 레이아웃 설정값의 import , export [1] | 2016.03.27 by Novelic |
XEPublic | 로그인 기록 모듈을 XE Public으로 전환하였습니다. | |
고나리자 | XE의 마켓 활성화 실패에 대해선 어떻게 생각하시나요? [53] | 2016.05.02 by 마이웹 |
기진곰 | PHP 버전에 따른 XE 성능 비교 [20] | 2016.03.21 by 김명수 |
퍼니엑스이 | 현재 접속자 모듈을 공개하였습니다. | |
마이웹 | 인공지능(AI) 블럭체인(비트코인) 유전자(DNA) | |
BJ람보 | 누리고 모듈 1.0 정식버전을 배포합니다. [1] | 2016.03.16 by gu곰 |
죽방망이 | 배너광고 다시는분~ | |
bncPlan | 위젯 최근글 추출에서 ... [6] | 2016.03.14 by bncPlan |
socialskyo | XE 1년 사용한 일반 유저가 그누보드5 설치해보고 [20] | 2016.03.16 by Flolida |
Flolida | XpressEngine 에서 HTTP Request 보안에 관해 [2] | 2016.03.13 by Flolida |
가브리엘조 | 카르마님이 제작하신 이미지 alt 에드온을 구합니다 [2] | 2016.03.08 by 가브리엘조 |
본체 | 대충 xe3등에 대해서 읽어보니까 [4] | 2016.03.03 by jooyoon88 |
BJ람보 | 누리고 모듈 0.2-beta를 배포합니다. [5] | 2016.03.02 by 퍼니엑스이 |
Xiso | XE3 dev3 배포일정... [4] | 2016.02.29 by Xiso |
컴박 | php7..문제 없겟지요 [4] | 2016.02.27 by 대암지기 |