2011-10-04 7 views
0

저는 아약스 호출을 통해 대부분의 작업을 수행하는 codeigniter 애플리케이션을 가지고 있습니다. 예를 들어 계정 생성을 고려해 볼 수 있습니다. 사용자 이름, 비밀번호, 이메일 및 모바일의 네 가지 필드가있는 양식이 있습니다. 내가, 정식 컨트롤러에서 계정 생성 방법에 계정 정보를 보내는 계정을 생성하고있는 사용자에 서명 돌보는하고이 스크립트와 서버 측 함수에 대한 ajax 호출을 보호하십시오.

frm = $("signupform").serializearray(); 
$.post(base_url + "/auth/ajaxlogin/", frm, function(data){ 
       if(data==="true") { 
        window.location.reload(); 
       } else { 
        $("#loginresult").show(); 
       } 
      }); 

.하지만 이것은 매우 취약 있는지 확인 메신저, 사용자 말 js 콘솔에서 지속적으로 계정을 생성하는 악성 스크립트를 작성할 수 있습니다. 그래서 이런 특정 기능을 보호하는 가장 좋은 방법은 무엇입니까?

+0

AJAX 나 표준 POST 제출물이 이러한 유형의 계정 생성 공격을 완화하기 위해 위생/보호 기능을 갖추어야하는지 여부는 중요하지 않습니다. – Jakub

답변

3

Ajax는 서버와 관련이 없으면 HTTP 요청은 HTTP 요청입니다. 공격의 종류에 대해 방어를위한

사용은 정상적인 방법 :

  • 확인 된 선택 하에서 테스트 위는 제공하지 않는 경우에만 (
  • 보안 문자를 제한 이메일 주소
  • 속도로 전송 충분한 보호, 그들은 사람들을 귀찮게한다.)
0

각 페이지는 고유 한 키를 쓸 수 있으며 제출의 일부를 형성하는 짧은 기간 동안 만 유효합니다. 이 키는 한 번만 유효하며 몇 분 동안 만 유효하며 양식 제출을 사용하려면 유효해야합니다. 물론 키는 소스에서 볼 수 있지만 한 번만 유효하므로 지속적인 계정 생성을 방해합니다.

JS를 축소하고 obsfucate 할 수도 있습니다. 악의적 인 사용자가 사이트를 공격하는 것을 어렵게 만듭니다.

+0

그러나 단순화 된 방법으로 축소와 뒤집기를 되돌릴 수 있습니다. – MacMac

+0

왜 그걸 뒤집어 쓰겠 니? Firebug와 같은 것을 사용하여 HTTP 요청을 모니터링하십시오. – Quentin

+0

나는 그것이 물건을 안전하게 만들 것이라고 결코 말하지 않았다 - 그것은 또 다른 장애물이다 ... –

0

보안을 구현할 수있는 방법은 여러 가지가 있지만 개별 사용자 악용을 차단하려면 들어오는 요청의 IP를 확인하고 X 분 내에 같은 IP에서 오는 반복되는 IP를 차단하지 않으시겠습니까? 이 모든 것은 수정 사항이 아니지만 다른 방법론으로 추가 할 수있는 추가 계층입니다.

관련 문제