php - jQuery AJAX 添加/编辑/删除操作可以被黑客攻击吗?

标签 php jquery mysql 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();

在这种情况下,用户名存储在 session 中。

用户 A 是否可以通过此代码删除用户 B 的数据?

我想添加一个查询来检查当前用户是否与在数据库中添加视频的用户相同。如果不是,他不能删除数据。但这是必要的还是这段代码足够安全?

提前致谢。

最佳答案

您最好在 session 中存储一个唯一的用户 ID。如果有两个人使用相同的用户名怎么办?


编辑:如果用户名是唯一的,那是很安全的。不可能更改在客户端工作的 session 变量的值,除非您在 PHP 代码中犯了一个可怕的错误。但是,如果您确定 session 变量始终设置正确,则不必担心。

关于php - jQuery AJAX 添加/编辑/删除操作可以被黑客攻击吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4483813/

相关文章:

php - Hook 到 Wordpress 图片上传

php - 在 PHP 中连接具有不同 ID 的表字段

jquery - 将 float 工具栏放在表格行上

mysql - MyBatis useGeneratedKeys 批量插入嵌套对象

mysql - 在 SQL 中选择平均值的最大值时出现问题

php - Laravel 4.2 中路由的 HTTPS 错误 - Assets 通过 HTTPS 加载正常

php soap 错误获取 http header

javascript - FabricJS 中使用 jQuery UI 可排序的 Z-Index 控制对象

jquery - 非事件选项卡中的 Javascript/Jquery 计时错误

mysql - 使用 LIKE 和 WHERE 的 SQL 搜索查询