2012-11-09 7 views
0

이 Codeigniter 프로젝트에서이 예제를 사용하고 있으며 DDoS 스타일 공격에 대해 아래 코드를 사용하는 사람들을 어떻게 막을 수 있는지 알고 싶습니다. 아래 코드를 변경합니까 아니면 Codeigniter 컨트롤러에서해야합니까?jquery DDoS prevention

또 하나의 방법은 어떤 접근 방식이 더 좋습니까?

버전 1 :

var form_data = $(this).serialize(); 
$.post('ci_class/ci_method', form_data, function(response) 

VERSION 2 : 당신은 DDoS 공격을 방지하기 위해 클라이언트 코드에서 아무것도 할 수 없습니다

$(document).ready(function() 
{ 
    $("#img_search").click(function(event) 
    { 
     event.preventDefault(); 

     var p = $('#text_postcode').attr('value'); 
     var hash = $('#hidden_hash').attr('value'); 

     $.ajax({ 
      type  : 'POST', 
      url  : 'ci_class/ci_method', 
      data  : 'pc=' + pc + '&hash=' + hash, 
      dataType : 'json', 
      success  : function(response) 
      { 
+0

을 나는 "서비스 거부 공격 (DoS)"을 클릭하는 것보다는 훨씬 적은 "분산 서비스 거부 (DoS) 공격"을 클릭하는 것으로 전화하지 않을 것입니다. 사람들이 당신에게 DoS를 원한다면, 그들은 당신의 편에서 버그를 필요로하지 않으며 단지 약간의 프로그래밍 기술 만 필요합니다. –

답변

0

때문와 같은 공격은하지 않습니다 어쨌든 클라이언트 코드를 사용하십시오.

어떤 방법이 더 나은지에 관해서는 당신이 생각하는 바에 달려 있습니다.

첫 번째 방법은 더 간단하며 양식에 입력 한 모든 필드에 동적으로 적용됩니다.

두 번째 방법은보다 정확하며 서버에 필요한 데이터 만 정확하게 전송하지만 서버에 보낼 다른 필드를 추가 할 때 코드를 업데이트해야한다는 단점이 있습니다.


팁 : 당신은 attr('value') 대신 val 방법을 사용할 수 있습니다 :

var p = $('#text_postcode').val(); 
var hash = $('#hidden_hash').val(); 

대신 문자열을 연결의 객체 리터럴의 값을 넣을 수있는 데이터 형성 :

data: { pc: pc, hash: hash }, 
+0

예 객체 리터럴과'val()'스타일이 더 좋아 보인다. 나는 그들을 사용할 것이다. 감사 – BentCoder