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

时间:2012-03-12 15:07:38

标签: php mysql

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

function form_write($string)
  {
     return mysql_real_escape_string(strip_html_tags($string));
  }

 $name = form_write($_POST['name']);
 $email = form_write($_POST['email']);
 ...etc

如果有人可以看一看并告诉我我是否在正确的轨道上或者是否有更好的方法来做这件事,我将不胜感激。

由于

2 个答案:

答案 0 :(得分:0)

是的,剥离标签并转移输入使其安全。稍后您可以为输入变量添加额外的验证层。例如,要验证电子邮件,您可以使用:

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

PHP有很多过滤器,请参阅filter_varlist of filters

答案 1 :(得分:0)

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

  

function form_write($ string)

     

{

     

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

     

}

     

$ name = form_write($ _ POST ['name']);

我是新来的,如果你认为我的答案是好的。如果你投票,我将不胜感激。

关心Venkat。