我错过了什么? SQL注入

时间:2016-01-30 16:17:05

标签: php mysql sql preg-match htmlspecialchars

我试图尽可能地过滤掉以防止令人讨厌的SQL注入,这是我的代码示例,我有什么遗漏?

$name = htmlspecialchars($row['name']);
echo '<div class="col-sm-7">'.$name.'</div>';

在我的html代码中^

if( $_POST["name"] ) {
 if (preg_match("/[^A-Za-z'-]/",$_POST['name'] )) {
     die ("Invalid characters.");
}

$name = mysqli_real_escape_string($conn, trim($_POST['name']));

所以我的代码中包含以上内容,是否有任何我可以忽略的内容可以进一步阻止?

还有一个问题

所以我必须过滤掉我自己的定义,因为这些数据不是来自我的表格吗?例如

$currentdate = mysqli_real_escape_string($conn, trim(date("Y-m-d h:i:sa")));

1 个答案:

答案 0 :(得分:3)

我个人认为你对SQL注入很好,但我会看一些人在评论中说的话。

另一方面,与SQL注入无关,您可能需要考虑在$name上使用strip_tags来删除任何不需要的HTML字符。