IEO Menu
InfoLogin
:: 전체게시물:: HTML 특수문자C/C++JavascriptIT/TIP개발/TIP개발/리눅스관리OSX/Windows잡담/잡동사니라이딩일기자가정비/튜닝유머사진 모음
$_GET, $_POST, $_REQUEST 에 대하여
Read: 7319
2016-08-30 16:30:50
처음 PHP를 공부할때 $_POST, $_GET, $_REQUEST 그 목적에 맞게 사용한다 라고 공부했다.

그러나 실전에서는 $_REQUEST 만 사용한다.

혹자는 $_REQUEST 만 사용하여 보안성을 떨어트린다, 위험하다. 제정신인가? 라고 말하기도 한다.

그럼 되묻는다. "해킹할때 GET 만 사용하고 POST는 사용하지 않는가?

천만에 다 사용한다. 즉 $_POST, $_GET 은 사실 의미가 없다.

어떤걸 사용해도 의미가 없다.

인터넷으로 넘어오는 정보들은 100% 믿을수 없는 정보다.

데이터가 GET으로 넘어올땐 데이터를 가공하고 POST로 넘어올땐 데이터를 가공하지 않아도 되는건가?

천만에 GET/POST 가릴것 없이 데이터는 무조건 가공해야 한다.

파일을 보더라도, 이미지의 경우에도, 내부 GD 라이브러리를 이용하여 가공된 파일을 사용하는 것이 바람직하다. 원본 그대로 사용했다가 좃되면 안된다고~
인터넷으로 주고 받는 데이터는 무조건 가공한후 사용한다.
숫자면 숫자형태로, 문자면 문자열 검수를.. 숫자로 와야하는 데이터가 문자로 왔다면 당연히 숫자형태로 강제변환후 0값을 가지게 될것이다.

GET/POST 가리지 않고 데이터를 모두 가공후 사용한다면 GET/POST 를 구분하는게 의미가 있는 일인가? 결단코 없다.

애당초 어떤 형태로 데이터가 넘어 오든 데이터를 믿는 것 자체가 문제다 GET으로 넘어 왔으니 위험하고 POST로 넘어 왔으니 안전한 데이터 따위는 없다.

어떤 형태로 넘어와도 데이터는 가공해야 한다. 해커는 어떤 형태로든 데이터를 보내는데, "난 POST를 체크하고 있으니 안전해~" 이딴 마인드를 가진 사람들이 더러 있다. ㅋ

그러나 제한을 걸기 위해 일부러 POST상태를 체크한다면 모를까? 데이터 유효성을 위해서 POST상태를 체크한다면 그건 정말 바보 같은 생각이다.
코드의 호환성/안전도.
어떤 코드들은 GET/POST를 가리지 말아야 하는 경우가 있다. 재사용 함수/클래스의 경우에는 더더욱 이 문제가 크다.

여기서 POST로 검증하고 여기서 GET으로 받아야 하고.. 집어쳐라. 데이터의 유효성보다 그게 더 중요하다면 게임오버다.

모든 데이터를 검수하는 것은 작은 규모에서는 그리 큰 문제는 없지만. 대형사이트의 경우에는 리소스 사용문제가 두드러질것이다.

그러나.. 데이터를 검수하는 쪽이 GET/POST 구분을 통한 검수보다 훨씬 더 안전하다. 리소스를 차지 한다고 하더라도 그게 더 절대적으로 안전하다.
웹 보안의 기초는 GET/POST 을 구분하여 지키는 것이 아니라. 데이터 검수로 지키는 것이다.
GET/POST 구분은 사실상 더 많은 데이터를 보낼수 있느냐 없느냐의 스펙일뿐, 보안을 위한 스펙이 아니다.

초보자들이 오해하는 것이 바로 그것이다. 주소 표시줄에 아무것도 안나타난다고 그것이 보안성이 좋은게 아니다. 그렇게 POST 더 뛰어나다고 생각하면 아예 홈페이지를 POST로만 움직이게 만들지 그러냐? ㅋㅋ

이건 우클릭을 할 수 없게 만들었다고 보안성이 더 높다고 생각하는 착각과 같은 것이다. 요즘 브라우저 굳이 우클릭없어도, 내가 원하는 이미지 동영상 다 추출가능하다.

데이터를 받아 쓰는데는 GET/POST 구분할 필요가 없다. 그냥 REQUEST 로 받아 데이터를 쓰면 된다.

단 모든 데이터는 검수후에 사용하는것을 전재로 한다. 데이터검수가 없으면 GET/POST 구분하는건 의미가 없다. 보안에 어떤 도움도 되지 않는다.
GET/POST 는 어떻게 쓰나?
함수가 GET 상태 일때는 동작하지 않다가 POST상태 일때만 동작을 가정한다고 보자, 이것은 같은 함수를 출력과, 입력에 같이 사용 할 경우다.

출력에서는 입력코드가 동작하지 말아야 하고, 입력의 경우 출력코드가 동작하지 말아야 하는 특수한 경우가 있다.

웹에서 폼데이터가 만약 GET으로 넘겨온다면, 입력을 중단하고, 출력으로 판정해야 한다.

반대의 경우 입력으로 판정하는 것이다.

그런 특수한 경우의 판단을 돕기 위해 사용하는 것이지, 그걸 POST를 보안규격이라고 생각하면 곤란하다.
2014/11/01 봉인 라이딩... 일부러 맞춰서 간건아닌데...
2014-11-03 19:45:38
미라쥬250 2015년형 인젝션 순정 최고속과 엔진오일 중간보고...
벤리110의 경우 GPS오차는 2~3% 정도이며, 이것이 사실 무의미한게 거의 확실 ... more
2014-11-01 19:41:02
미라쥬 중립기어 찾기와 벤리 엔진오일
미라쥬 신차를 내린후 중립기어 찾는게 뻑뻑했다. 미라쥬 중립기어 찾는건 ... more
2014-10-25 19:36:23
2014/09/25 미라쥬250 신차 입양..
2014-10-18 19:14:08
2014/09/10 연장 라이딩... MBC 드라미아 > 남한산성 > 팔당댐 찍고 복귀...
2014-09-11 16:35:03
두번째 슬립 이야기 ㅋㅋㅋㅋ 대체 왜? 거기서 급브레이크를 잡았을까?
2014-09-09 16:19:06
2014/09/05(금)~08(월) 추석 라이딩 투어~~
2014-09-09 16:43:23
벤리110의 오너가 될 분들을 위한 조언과 벤리110 실연비 특성.
1. 벤리110의 느린 속도 때문에 장거리 투어에 약간 스트레스를 받을수 있다. ... more
2014-09-09 13:54:45
2014/08/30(토) 대부도 장난감 투어?
2014-08-30 13:45:48
2014/08/27(수) 새로운 장난감을 들고 물왕 저수지로 향했다.
2014-08-27 13:43:03
토쳐라이딩 | IEO.KR
IEO.KR의 사전 서면동의 없이 IEO.KR 사이트의 일체의 정보, 콘덴츠 및 UI등을 상업적 목적으로 전재, 전송, 스크래핑 등 무단 사용할 수 없습니다.