将html表单发布到mysqldb并避免数据库攻击


posting html form to mysql db and avoiding database attacks

我有一个问题要澄清采用表单数据并以最安全的方式将其写入mysql数据库的最佳方法,以防止数据库攻击,同时剥离html标记。下面我有一个名为form_write的函数,它可以实现这一点,然后我在声明每个表单后变量时在代码中使用它。

function form_write($string)
  {
     return mysql_real_escape_string(strip_html_tags($string));
  }
 $name = form_write($_POST['name']);
 $email = form_write($_POST['email']);
 ...etc

如果有人能看一看,让我知道我是否走在了正确的轨道上,或者是否有更好的方法来做到这一点,我将不胜感激。

感谢

是的,剥离标记并转义输入可以确保安全。稍后,您可以为输入变量添加一个额外的验证层。例如,为了验证电子邮件,您可以使用:

if (!filter_var($_POST['email'], FILTER_VALIDATE_EMAIL)) {
    throw new Exception('Invalid e-mail address');
}

PHP有很多过滤器,请参阅filter_var和过滤器列表。

strip_tags()很好,您还可以使用preg_match()匹配输入的电子邮件地址是否实际上是电子邮件地址。我建议您使用trim()[在开头和结尾修剪空白]。

函数form_write($string)

返回mysql_real_sescape_string(trim(strip_tags($string));

}

$name=form_write($_POST['name']);

我是新来的,如果你认为我的回答很好的话。如果你投赞成票,我将不胜感激。

向文卡特致以问候。