我有一个值作为主键存储到数据库中,在本例中我们将其称为 prime_key
。我使用 PHP 使用完全相同的加密方式对 prime_key
进行加密,这样我就可以在 HTML 中为 AJAX 生成一个按钮,这样用户就无法伪造 key 并删除其他人的帐户信息。
PHP concat 看起来像:
md5('ab'.sha1('wonderful'.$prime_key.'really').'testThis');
MySQL CONCAT 看起来像:
$db->query("DELETE * FROM somewhere WHERE MD5(CONCAT('ab',SHA1(CONCAT('wonderful',prime_key,'really')),'testThis'))='{$_POST['altered_key']}'");
注意,在查看 MySQL 时,prime_key
是 somewhere
表中的列名称。我已经将问题范围缩小到了这一点。它只是不会删除。请帮忙。
最佳答案
我认为问题在于
DELETE * FROM somewhere
应该是
DELETE FROM somewhere
关于php - 复杂的 MySQL CONCAT 存在加密问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24622562/