사실 사이트 일부를 파싱해가는 행위가 별 대단한 일은 아닙니다.
하지만 그러한 행위를 하는 곳이 수십군데, 수백군데가 된다면 예삿일이 아니죠.
웹 방화벽을 운영중에 있긴한데 파싱해가는걸 막을 방법이 마땅히 없는게 문제입니다.
일반 방문처럼 위장된 채로 사이트를 파싱해가면
아이피를 특정해서 차단하기도 어렵고 이게 정말 애매한 상황입니다.
파싱에 대한 방어, 어떻게 생각들 하시는지요.
사실 사이트 일부를 파싱해가는 행위가 별 대단한 일은 아닙니다.
하지만 그러한 행위를 하는 곳이 수십군데, 수백군데가 된다면 예삿일이 아니죠.
웹 방화벽을 운영중에 있긴한데 파싱해가는걸 막을 방법이 마땅히 없는게 문제입니다.
일반 방문처럼 위장된 채로 사이트를 파싱해가면
아이피를 특정해서 차단하기도 어렵고 이게 정말 애매한 상황입니다.
파싱에 대한 방어, 어떻게 생각들 하시는지요.
기본적으로 웹은 양방향 통신입니다.
클라이언트가 접속요청을 보내지 않았다면 서버는 클라이언트에 사이트의 내용을 보내주지 않습니다.
더 쉽게 비유를 하자면 문이 달려있는 개인 주택집입니다.
데이터를 받으려면 문을 두드려서 집주인에게 허락을 맡아야 집 안에 들어올 수 있습니다.
집 안에 들어올때는 받을려는 물건(요청 주소) 이름(IP 주소) 외모(유저어젠트) 어디서 소문을 듣고 왔는지(리퍼러)를 듣고 해당 물건을 줍니다.
집의 문에서 얼쩡거리는(초당 요청수가 기준을 넘으면) 외부인이라면 차단을 하고 외모가 수상적으면 차단을 합니다.
그 외 문을 두드리기만 하고 물건을 받지않는다거나 하는 일반적이지 않는 요청을 차단하는 방법이 있습니다.
데이터를 변조하는것은 물건을 보기 어렵게 만드는것입니다, 물건에 자물쇠를 건다면 정상적으로 물건을 달라는사람도 확인을 할 수 없습니다. 결국 집 바로 앞에 이 물건의 내용을 확인 할 수 있는 해석기를 달아줘야합니다.
결국은 방문을 아예 잠그고 가족이 아니라면 받지못하게 하거나 집을 허물지 않는다면 결국은 해답은 단 하나입니다.
물건을 열어보기 힘들게 하고 집 앞에 있는 해석기가 어떻게 돌아가는지 확인하기 어렵게하는방법밖에 없습니다.
웹에 비해 응용프로그램은 컴퓨터에 요청 할 수 있는 권한이 훨씬 많습니다.
엑티브X나 응용프로그램이 있습니다, 이러한 불편을 감수할 수 있다면 프로그램단위로 가능합니다.
집 밖으로 나와서 외부인의 손에 수갑을 채울 수 있고 뒤에서 밀어서 사용자가 원하지 않는 행동을 할 수 있습니다.
아니면 플래시도 가능합니다만 아마 가격이 배로뛸겁니다.
파싱방어는 칼과 방패의 싸움입니다. 파싱을 원천적으로 막는건 서버상에서 클라이언트가 데이터를 받아올 수 있다면 불가능하다고 보면 됩니다.
기본적인 방법으로는
초당 요청수가 일정수 이상이면 차단
봇 유저어젠트 확인
gzip 압축사이트일경우 초보개발자의 경우 헤더에 gzip 헤더를 없에고 요청합니다, gzip 헤더가 없으면 차단하는 방법
같은 방법이 있습니다만 초보개발자가 아니라면 대부분 뚫습니다.
그리고 데이터를 변조하는경우 자바스크립트단에서 다시 원본으로 해석해줘야하기때문에 어쩔수 없이 뚫립니다.
Nginx Token과 같은 서버단에서의 방어도 요청하는 순간에 받아오면 게임끝입니다.
웬만한건 그냥 요청만 보면 뚫린다고 보면 됩니다.