php – 用爆炸删除()
发布时间:2020-12-13 17:25:22 所属栏目:PHP教程 来源:网络整理
导读:我有一个表单,提交了一个事务ID数组到$_POST [‘transid’],因此可以删除这些事务记录. 我通常使用mysqli_real_escape_string来帮助防止攻击,但我不确定如何使用数组.以下是我的查询: $query = 'DELETE FROM TRANSACTIONS WHERE (transid) IN ("'.implode('
我有一个表单,提交了一个事务ID数组到$_POST [‘transid’],因此可以删除这些事务记录.
我通常使用mysqli_real_escape_string来帮助防止攻击,但我不确定如何使用数组.以下是我的查询: $query = 'DELETE FROM TRANSACTIONS WHERE (transid) IN ("'.implode('","',$_POST[transid]).'")' ……这给了我这样的东西: $query = 'DELETE FROM TRANSACTIONS WHERE (transid) IN ("123","124","138","145")' 这似乎是在寻找麻烦.我如何保护自己免受灾难(恶意或其他)?有没有一种有效的方法来消毒阵列?或者我应该采取另一种方式? 任何想法或指导将不胜感激. 解决方法
你可能最好在使用它来破坏之前消毒$_POST,为此你必须遍历它. @ user870018打败了我对结构的冲击,但这就是我要做的事情:
function sanitize($n) { return your_escape_function_here($n); } $values = implode(",",array_map("sanitize",$_POST[transid])); $query = 'DELETE FROM TRANSACTIONS WHERE (transid) IN ('.$values.')'; (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |