【问题标题】:MySQL: UPDATE database with JQuery sortable new valueMySQL:使用 JQuery 可排序的新值更新数据库
【发布时间】:2013-03-04 11:54:51
【问题描述】:

我知道了:

foreach($_POST['pos'] as $value) {
   $new_value = "UPDATE users SET regnr='" . $value . "' 
   WHERE username='" . mysql_real_escape_string($_COOKIE['username']) . "'";
}

// Connect to database
$opendb = mysql_connect($dbhost, $dbuser, $dbpass) or die("Kunde inte ansluta till MySQL:<br>" . mysql_error());
mysql_select_db($dbname) or die("Kunde inte ansluta till databasen:<br>" . mysql_error());

mysql_query($new_value) or die(mysql_error());  

// Close database
mysql_close($opendb);

信息:

$_POST['pos'] 在隐藏输入中保存来自数据库的值。这个值我选择用str_split($r['regnr'], 6); 拆分成一个JQuery 可排序列表。如果我在 foreach 循环中键入echo $value;,我就会从 JQuery 可排序列表中获得新值(未拆分,如我所愿)。我需要列表中的所有值,并通过echo 获得。但是,如果我使用 $value 变量来更新它来自的数据库,它只会使用 JQuery 可排序列表中的最后一个值进行更新。

有人可以解决吗? :D

【问题讨论】:

  • 很好SQL injection hole。此代码允许任何恶意用户更改用户表中他们想要的任何内容,包括使自己成为超级用户/管理员。
  • 怎么样?到目前为止,此代码只是一个示例。尚未专注于保护它。
  • 如果用户更改了 cookie username 的值,那么用户可以注入这个值 you-got-hacked'; DROP DATABASE; 并且 poof 不再有数据库。是的,这就是 SQL 注入的严重程度。使用the PDO librarythe MySQLi library
  • @Treps 你以后不会添加安全性。你从一开始就设计了合适的东西。
  • 好的,我会调查的。但是有没有人可以解决实际问题? :)

标签: php mysql jquery-ui-sortable


【解决方案1】:

解决方法如下:

$str = '';

foreach($_POST['pos'] as $value) {
  $str = $str.$value;
}

// Connect to database
$opendb = mysql_connect($dbhost, $dbuser, $dbpass) or die(mysql_error());
mysql_select_db($dbname) or die(mysql_error());

$new_value = "UPDATE users SET regnr='" . $str . "' WHERE username='" . mysql_real_escape_string($_COOKIE['username']) . "'";
mysql_query($new_value) or die(mysql_error());

// Close database
mysql_close($opendb);

【讨论】:

    猜你喜欢
    • 2013-03-03
    • 1970-01-01
    • 1970-01-01
    • 2013-03-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-07-22
    相关资源
    最近更新 更多