Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/270.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/database/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 如何防止更新数据库的其他记录?_Php_Database_Security - Fatal编程技术网

Php 如何防止更新数据库的其他记录?

Php 如何防止更新数据库的其他记录?,php,database,security,Php,Database,Security,我有一个表,它从phpMyAdmin读取所有数据库,并用php代码显示它。 -我还可以更新表中的每个单元格,例如使用表中的行,该行等于我数据库中的ID,而列等于(名字、姓氏、密码),表示工作正常。 因此,如果用户单击表中的一个单元格,jquery将通过ajax发送参数ID和字段的列(名字、姓氏、密码)。 我有什么问题? 我的问题是,我如何防止haker或智能用户看到jquery代码,他就会这样做 理解他可以更改任何ID或密码参数的值,并且ajax可以更新数据库而不是正确的ID吗? supose

我有一个表,它从phpMyAdmin读取所有数据库,并用php代码显示它。 -我还可以更新表中的每个单元格,例如使用表中的行,该行等于我数据库中的ID,而列等于(名字、姓氏、密码),表示工作正常。 因此,如果用户单击表中的一个单元格,jquery将通过ajax发送参数ID和字段的列(名字、姓氏、密码)。 我有什么问题? 我的问题是,我如何防止haker或智能用户看到jquery代码,他就会这样做 理解他可以更改任何ID或密码参数的值,并且ajax可以更新数据库而不是正确的ID吗? supose I向用户表显示10行,其中ID为11-20。用户将更改ID参数ID,该参数ID等于500,可以结束

$(document).ready(function()
{
    var COLUME, VAL,ROW,STATUS,DATASTRING;

    $('td').click(function() {
        COLUME = $(this).attr('class');   
      });
//****************
    $('tr').click(function() {
        ROW = $(this).attr('id');
        $('#display_Colume_Raw').html(COLUME+ROW);
        //$('#display').html(COLUME+ROW);
        $('#span' + COLUME + ROW).hide();
        $('#input'+ COLUME + ROW ).show();
      STATUS = $("#input" + COLUME + ROW).val();
    });
  //******************** 
    $(".edittd").mouseup(function() {
        return false;
    });
  //*************
    $(document).mouseup(function() {
        $('#span' + COLUME + ROW).show();
        $('#input'+ COLUME + ROW ).hide();
        VAL = $("#input" + COLUME + ROW).val();
        $("#span" + COLUME + ROW).html(VAL);
          if(STATUS != VAL){
          $('#statuS').removeClass('statuSnoChange')
            .addClass('statuSChange');
             $('#statuS').html('THERE IS CHANGE');
             DATASTRING=$('#display_Colume_Raw').html()+','+VAL;
            //******ajax code
                 //dataString = $.trim(this.value);
                      $.ajax({
                        type: "POST",
                         dataType: 'html',
                         url: "./public/php/ajax.php",
                         data: 'DATASTRING=' + DATASTRING, //{"dataString": dataString}
                             cache: false,
                             success: function(data)
                             {
                                //alert(data);
                                $("#statuS").html(data);
                                }
                             });
                      //******end ajax
                 }
                 else
                 {
                 //alert(DATASTRING+'status not true');
                 }

        });       
    });

显示前端代码没有意义,因为这是在后端实现的


在通过AJAX调用的方法中,只需检查用户是否具有执行请求操作的权限。您可以在方法顶部进行单独的检查,如果用户不允许,则返回该检查,也可以将其内置到删除查询本身中,例如。,通过添加WHERE子句,确保这些ID是允许用户删除的ID。

您不能在MySQL中分配每行权限,以便用户可以查看/编辑a行,但B行不能


如果您必须要有一个解决方案,那么有一个解决方法会有点麻烦,那就是,不要对表使用直接查询(选择、插入等),而是编写执行某种身份验证和/或验证的存储过程。该过程可以执行您想要的任何类型的复杂验证—检查用户ID、检查列值等—并仅返回该用户有权查看和/或编辑的内容。

请显示现有代码/方案。请查看。