这是逃避多个领域的正确方法吗?
问题描述:
我刚刚雇人做一个安全的形式,并且粘贴下面只是一个大的代码片段:这是逃避多个领域的正确方法吗?
$_POST = escape_all($_POST);
$some1 = $_POST['some1'];
$some2 = $_POST['some2'];
$some3 = $_POST['some3'];
$some4 = $_POST['some4'];
$some5 = $_POST['some5'];
$some6 = $_POST['some6'];
$some7 = $_POST['some7'];
$some8 = $_POST['some8'];
那是正道还是我要补充mysql_real_escape_string();到所有的变量?
答
这看起来像他写了一个自定义函数来逃避。只要escape_all函数调用mysql_real_escape字符串,它将在技术上起作用,但我不会说这是因为几个原因而优选的解决方案。
首先,你要小心不要在其他地方逃跑,因为它很容易导致双重逃跑,这可能会导致其他问题。
此外,如果性能是一个问题,您最终可能会转义大量不需要转义的数据,这取决于具体情况。
是的,使用mysqli而不是mysql通常是可取的。
取决于'escape_all'是什么。 – Amber 2012-04-11 03:24:26
告诉你的“雇佣”关于'mysqli' – 2012-04-11 03:26:12
你真的更好*不*使用$ _POST搞砸了,而是使用编写SQL的技术来避免转义(例如命名参数)。 – Eli 2012-04-11 03:49:10