2010-12-19 13 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を格納する方がよいでしょう。同じユーザー名の2人がいる場合はどうなりますか?


編集:ユーザ名は一意である場合、それは非常に安全です。 PHPコードでひどい間違いをしない限り、クライアント側で働くセッション変数の値を変更することはできません。しかし、セッション変数が常に正しく設定されていると確信できれば、心配する必要はありません。

+0

私はそれを認識していますが、あなたのウェブサイトに同じユーザ名を持つことはできません。すでに使用されている場合は、 "moonwalker"に登録しようとすると、登録時にエラーが発生します。 – moonwalker

+0

私はAmember(www.amember.com)を使用して、自分のウェブサイト上のすべての登録/ログイン作業を処理しています。現時点では、どのクライアントも使用しているコードで何か変わったことを経験していなかったので、私は彼らがコードで間違いを犯さなかったと確信しています。 お返事ありがとうございました。 – moonwalker

関連する問題