以下是从名字形式验证用户输入的示例。
名字是 Craig ,最多40个字符。
// Check if not empty, type and not numeric
if (!empty($firstName) && is_string($firstName) && !is_numeric($firstName)) {
echo 'in fn passed 1 ' . '<hr />';
}
else {
echo 'in fn failed 1 ' . '<hr />';
}
// Check length
if ((strlen($firstName) > 1) && (strlen($firstName) < 41)) {
echo 'in fn passed 2 ' . '<hr />';
}
else {
echo 'in fn failed 2 ' . '<hr />';
}
// Accepts anything as long as it has a letter even if it contains < INJECTION RISK
if (preg_match('/[a-z]/', $firstName)) {
echo 'in fn passed 3 ' . '<hr />';
}
else {
echo 'in fn failed 4 ' . '<hr />';
}
我的问题是,如果我对表单中的用户输入使用上述内容,我应该对数据库数据和会话数据进行相同的验证,还是我执行此操作。
据我所知,所有外部数据都是如此,但是我已经看到了很多以不同方式对待数据库和会话数据的例子我有疑问。
有人可以让我知道从表格中验证这个名字的适当安全方法,以及是否应该在数据库和会话数据上使用相同的方法。
非常感谢。 克雷格。