我试图尽可能地过滤掉以防止令人讨厌的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")));
答案 0 :(得分:3)
我个人认为你对SQL注入很好,但我会看一些人在评论中说的话。
另一方面,与SQL注入无关,您可能需要考虑在$name
上使用strip_tags
来删除任何不需要的HTML字符。