Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/283.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
Javascript 如何在PHP数据库中为更新行添加安全性_Javascript_Php_Mysql_Ajax_Security - Fatal编程技术网

Javascript 如何在PHP数据库中为更新行添加安全性

Javascript 如何在PHP数据库中为更新行添加安全性,javascript,php,mysql,ajax,security,Javascript,Php,Mysql,Ajax,Security,比如在我的ajax请求页面中,我从数据库中提取了一行结果,如下所示: while ($stmt->fetch()) { echo "<p value='".$taskId."' class='titleRsltTask'>".$taskTitle."</p><br>"; } 它使用值$taskId在updateTask.inc.php中查找要更新的行 我可以通过哪些方法验证用户正在更新的行是否属于他们,以便他们无法通过更改inspect元素中的

比如在我的ajax请求页面中,我从数据库中提取了一行结果,如下所示:

while ($stmt->fetch()) {
    echo "<p value='".$taskId."' class='titleRsltTask'>".$taskTitle."</p><br>";
}
它使用值
$taskId
updateTask.inc.php
中查找要更新的行

  • 我可以通过哪些方法验证用户正在更新的行是否属于他们,以便他们无法通过更改inspect元素中的值来更新表中的任何行
  • 首先,有没有更好的方法来设置它?使用SSL有任何帮助吗
  • 你还想指出其他安全措施吗?我很高兴听到
    我对授权、身份验证和加密做了一些研究,但仍然不确定在这种情况下该怎么办。

    我确实理解您对安全性的担忧,因为返回的值是自动递增的数字

    使用ssl不会对这些东西进行加密或提供任何安全性

  • SSL仅加密与您网站的其他用户连接
  • SSL加密传输到您网站的数据包
  • 应用附加安全层的一种方法是,使用某种salt算法对服务器返回的数字id进行加密,并以加密格式显示在视图中,然后在服务器上解密

    即使有人使用inspect元素更改加密值,更新和更改加密值也不会有任何好处,因为在服务器中解密时,加密值不会被处理为有效值

    希望这有帮助


    谢谢

    您应该重新考虑您的表格结构。如果用户只能更改某一行,则在每一行上包括可以编辑该行的用户ID,对请求使用身份验证(通过包括会话cookie等),并将该逻辑添加到
    UPDATE
    命令中。如果一组用户可以更改某些行,则会有一个额外的列指定组ID/权限,并确保每个用户都设置了权限级别。

    如果用户对某个问题投了否决票,建议他们写一个原因,以便改进该问题-我希望其他用户注意此评论@MichaelW44您可以改进您的问题,但要使其更清楚。这个问题非常模糊,实际上可以给出一个很好的安全建议。我只能说,您需要实现身份验证,以验证正确的用户正在更新自己的行。SSL将阻止第三方截取数据。实际上,我的表结构已设置为从用户最初插入任务时起每行的用户ID。如果我答对了,您是说从正在更新的行中查询出用户ID,检查它是否与会话变量中的用户ID匹配,如果匹配,然后对该行执行update命令?希望我的措辞或多或少是正确的,是的-如果您只希望该用户能够编辑该行,那么您需要以某种方式将信息发送到服务器,或者以其他方式发送给该用户。发送用户ID是不安全的,因为任何人都可以对其进行编辑,所以您应该通过使用会话来验证该用户就是该用户。有道理,我将进一步研究加密。谢谢你的帮助
    $(document).ready(function(){
      $('.titleRsltTask').click(function(){
        id = $(this).attr('value');
        $('#taskResults').load('Includes/updateTask.inc.php', {
          Id: id
      });
    });