2010-12-19 8 views
1

보안 문제가 궁금합니다. 지금은 내 데이터베이스에서 동영상을 삭제하기 위해 다음과 같은 기능을 사용하고 있습니다 : 뒤에서jQuery AJAX 추가/수정/삭제 작업을 해킹 할 수 있습니까?

function deleteVideo(video_id){ 
     function mycallbackform(v,m,f){ 
      if(v=="yes"){ 
       $.ajax({ 
        type: "POST", 
        url: "delete.php?action=video", 
        data: "video_id=" + video_id, 
        success: function(html){ 
         if(html == "1"){ 
          //$("#result").html(html); 
          $("#row_"+video_id).fadeOut("slow"); 
          $("#result").show(); 
          $("#result").html("<div class='notification success png_bg'> <div><?php echo $LANG_video_succesfull_delete; ?> </div></div>"); 
          setTimeout(function(){ $('#result').fadeOut('slow'); }, 5000); 
         }else{ 
          $("#result").show(); 
          $("#result").html(html); 

         } 
        } 
       }); 
      } 
     } 
      $.prompt('Are you sure?',{ buttons: { Ok: 'yes', Cancel: 'no'}, callback: mycallbackform}); 
      } 

다음 코드가 실행 종료 :

/*** DELETE data ***/ 
    /*** prepare the SQL statement ***/ 
    $stmt = $dbh->prepare("DELETE FROM videos WHERE username=:username AND videos_id=:video_id"); 
    $stmt->bindParam(':username', $currUser); 
    $stmt->bindParam(':video_id', $video_id); 



    /*** execute the prepared statement ***/ 
    $stmt->execute(); 

사용자 이름은이 경우 세션에 저장 .

사용자 A가이 코드로 사용자 B 데이터를 삭제할 수있는 방법이 있습니까?

현재 사용자가 데이터베이스에 비디오를 추가 한 동일한 사용자인지 확인하기 위해 쿼리를 추가 할 생각이었습니다. 그렇지 않으면 그는 데이터를 삭제할 수 없습니다. 그러나 이것이 필요하거나이 코드가 충분히 안전합니까?

미리 감사드립니다.

+1

이 코드는 안전하지 않습니다. 누가 ** 현재 사용자인지를 설명하십시오 ** – ajreal

+0

@ajreal : $ currUser = $ _SESSION [ 'username']; 사용자 이름은 세션에 저장됩니다. – moonwalker

답변

3

고유 한 사용자 ID를 세션에 저장하는 것이 좋습니다. 같은 사용자 이름을 가진 두 사람이 있다면 어떻게 될까요?


편집 : 사용자 이름이 고유 경우, 그것은 아주 안전합니다. PHP 코드에서 끔찍한 실수를하지 않았다면 클라이언트 측에서 작동하는 세션 변수의 값을 변경할 수 없습니다. 그러나 세션 변수가 항상 올바르게 설정되었다고 확신 할 경우 걱정할 필요가 없습니다.

+0

그 사실을 알고 있지만 내 웹 사이트에서 동일한 사용자 이름을 사용할 수 없습니다. 이미 등록 된 경우 "moonwalker"로 등록하려고하면 등록하는 동안 오류가 발생합니다. – moonwalker

+0

Amember (www.amember.com)를 사용하여 내 웹 사이트의 모든 등록/로그인 작업을 처리하고 있습니다. 현재이 고객은 사용하는 코드에 이상한 것을 경험하지 못했기 때문에 코드에서 끔찍한 실수를 저 지르지 않았다고 확신합니다. 답변 해 주셔서 감사합니다. – moonwalker

관련 문제