체크초코
70
2019-06-25 13:54:45 작성 2019-06-25 14:04:05 수정됨
5
1245

Get 방식으로 불러오는 URL 직접접근을 막는 방법...


궁금한게 생겨서 질문 드립니다.

현재 get 방식으로 url 을 불러오고 있는데 get 방식이다보니 값이 그대로 표현되어 있습니다.

예를 들어 detail.asp?num=100 이런 식으로 되어있고 num 은 해당 게시판에 번호라고 했을 때

다른 번호를 입력했을 때 예를 들어 detail.asp?num=101 이라고 쳤을 때

그대로 페이지가 이동이 되는데 이걸 제어해주는 방법(페이지가 이동되지 않게 한다든지...)이 있을까해서 질문드립니다.

0
  • 답변 5

  • 륜디아
    2k
    2019-06-25 14:04:24

    페이지가 이동이 되는 이유는 101이란 파라미터를 컨트롤러 단에서 받아 처리한 뒤 뷰로 보내주기 때문이죠

    특정 숫자를 제어하려면 컨트롤러에서 예외처리 해주시면 될것 같고...

    그게 아니라 그냥 값을 넘기는걸 제어하는 방법은 없습니다... 그러시려면 post로 넘기셔야되요

  • Frudy
    7k
    2019-06-25 14:10:17

    제가 생각하는 웹의 단점이자 장점이..

    URL만 쳐서 모든 웹페이지에 접근을 "시도"할 수는 있다는 거에요.

    그래서 매번 패러미터 넘어온가 일일히 모든페이지에서 확인해야하고...


    값을 보여주는게 싫어서 post로 처리하더라도

    xxx.do?parameter=3 이렇게 억지로 주소창에 쳐보면 작동은 또 되고...


    더 좋은방법이 있을까 싶어 와드박아봅니다.

  • 체크초코
    70
    2019-06-25 14:19:10

    그렇군요 두분 답변 감사합니다^^

  • guyv
    1k
    2019-06-25 14:36:33

    일단, 질문하신 것 처럼, GET 요청의 목적이 링크를 걸기 위함입니다.

    그리고 설사 post 의 요청만 받게 하더라도 요청자는 post로 요청하면 그만입니다.

    해서, 서버에서 사용자 요청을  한정하는 도구로 권한(로그인 등)이라는 걸 사용하겠죠?


    여튼, 아직까지는 별 문제 없이 원하는게 다 될겁니다.




  • 컴포지트
    2k
    2019-06-25 15:10:15 작성 2019-06-25 15:11:11 수정됨

    응용 프로그램처럼 생각하면 안될 텐데요. 웹은 개방성입니다.

    윗분 말씀대로 각기 HTTP METHOD는 목적이 있습니다.

    혹시 보안 때문이라면, 인증이란 말이 괜히 있는 게 아닙니다. Spring Security도 괜히 있는 게 아니고요.

    각 페이지별로 무결성 검증할 수 있습니다. 이를 통해 직접 URL 쳐서 들어와도 접근 권한을 달리할 수 있죠.

    이건 서버 몫입니다. 브라우저는 그저 주소 치면 응답 결과 띄워서 보여주는 프로그램입니다.

    혹시 POST를 통해 보안을 챙긴다고 생각한다면, 당장 HTTP 통신 기초부터 다시 보시길 바랍니다.

  • 로그인을 하시면 답변을 등록할 수 있습니다.