2013-05-20 2 views
0

나는 파이어 폭스 파이어 버그를 사용하여값 변경 및 jQuery를 html로()

<span></span> 

의 값을 변경 한 후

$("span").html(); 

을 사용하지만 변경된 값을 받고있어 함께 얻을 페이지를로드 할 때 생성 된 원래 값이 아닙니다.

개똥 벌레로 원래 값을 얻을 수 있습니까?

나는이 값을 아약스에서 데이터베이스에 저장하기 위해 사용하고 있기 때문에 보안 목적으로 만 요구하고있다.하지만 지금은 크롬에 방화 광구 또는 원소 검사를 사용하여 나쁜 의도를 가진 사용자가 쉽게 수정할 수있다. .

제대로하고 있습니까?

답변

1

클라이언트 측에 전송 된 모든 내용은 변경 될 수 있으며 프런트 엔드의 보안에 의존 할 수 없습니다. 서버 측 코드가 안전한지 확인해야합니다.

사용자가 해당 기간의 값을 변경하지 못하도록하더라도 사용자는 여전히 AJAX 요청을 복제하고 매개 변수를 변경하여 허용 할 서버로 보낼 수 있습니다. 수신단에서 사용자의 입력을 정리하고 원치 않는 것을 필터링해야합니다.

데이터베이스 트랜잭션에 SQL을 사용하는 경우 SQL 주입 방지 방법을 읽어야합니다. 사용자가 언급했듯이 잠재적으로 사용자의 데이터베이스에 SQL을 보내려고 시도 할 수 있습니다. 이는 해로울 수 있습니다. 주제에 대한 흥미로운 내용은 article입니다.

+0

멋진 답변입니다. SQL 주입을 피하기 위해 AJAX 요청을받는 PHP를 확인해 보겠습니다. 감사! –

+0

@ThiagoRocha 확실한 것! 결코 사용자 입력에주의를 기울일 수 없다! 또한 이것이 도움이된다면 대답으로 받아 들일 수 있습니까? –

1

값을 변경하는 것이 염려되는 경우 제출하기 전에 값을 원본과 비교해야합니다.

var spanMatches = function(original) { 
    span === "Original Span" ? true : false; 
}; 

$(document).ready(function(){ 
    // cache original value on domready 
    var original = $('span').html(); 
    // span value gets changed 
    $('span').html('new value'); 

    $('form').submit(function(){ 
     if(spanMatches(original)){ 
      $.ajax(function(){ 
       // make sure you include `original` in data sent upstream 
      }); 
     } else { 
      alert('value has been changed'); 
     } 
    }); 
}); 
+0

그래,하지만이 코드를 사용하면 값이 변경되었는지 (사용자 또는 스크립트 자체) 확인하기 만하므로 저장소에 새로운 범위 값을 지정할 수 없습니다. 그렇지 않으면 ajax를 실행 하시겠습니까? –