보안 문제가 궁금합니다. 지금은 내 데이터베이스에서 동영상을 삭제하기 위해 다음과 같은 기능을 사용하고 있습니다 : 뒤에서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 데이터를 삭제할 수있는 방법이 있습니까?
현재 사용자가 데이터베이스에 비디오를 추가 한 동일한 사용자인지 확인하기 위해 쿼리를 추가 할 생각이었습니다. 그렇지 않으면 그는 데이터를 삭제할 수 없습니다. 그러나 이것이 필요하거나이 코드가 충분히 안전합니까?
미리 감사드립니다.
이 코드는 안전하지 않습니다. 누가 ** 현재 사용자인지를 설명하십시오 ** – ajreal
@ajreal : $ currUser = $ _SESSION [ 'username']; 사용자 이름은 세션에 저장됩니다. – moonwalker