【发布时间】:2011-02-01 08:00:07
【问题描述】:
我想在我的数据库中删除一行,并找到了一个example,关于如何使用 jQuery 的 $.post()
不过现在我想知道安全性..
有人可以从另一个网站向我的 delete-row.php 脚本发送 POST 请求吗?
JS
function deleterow(id) {
// alert(typeof(id)); // number
if (confirm('Are you sure want to delete?')) {
$.post('delete-row.php', {album_id:+id, ajax:'true'},
function() {
$("#row_"+id).fadeOut("slow");
});
}
}
PHP:删除行.php
<?php
require_once("../db.php");
mysql_connect(DB_SERVER, DB_USER, DB_PASSWORD) or die("could not connect to database " . mysql_error());
mysql_select_db(DB_NAME) or die("could not select database " . mysql_error());
if (isset($_POST['album_id'])) {
$query = "DELETE FROM albums WHERE album_id = " . $_POST['album_id'];
$result = mysql_query($query);
if (!$result) die('Invalid query: ' . mysql_error());
echo "album deleted!";
}
?>
【问题讨论】:
-
只是补充一点:不仅仅是一条记录,有人可能会在你眨眼之前删除你的整个数据库,通过 $_POST['album_id']。如果可能,考虑使用 mysqli 或 PDO(参数化查询)而不是糟糕的旧 mysql_*。
-
非常感谢您添加有关 mysqli 和 PDO 的注释,我以前从未听说过它们,但会学习。所以你是说 mysqli 的示例代码更安全?还能证明吗?
标签: jquery mysql security post