Php mysql的安全表单数据

Php mysql的安全表单数据,php,mysql,Php,Mysql,我一直在使用: if ($_POST['Comments']!=""){ $comments = mysql_real_escape_string($_POST['Comments']); }else{ $comments = ""; } 自从一个用户在他们的数据中添加了符号和符号,它破坏了我的sql语句。我认为这同时也保护了数据。但刚才我收到了一份意见书,在数据库的评论栏中我看到: /r/r/r/r/r/r/r/r/r/r/r/r/r/r/r/r/r/r/r/r/r/r/r/r/r

我一直在使用:

if ($_POST['Comments']!=""){
  $comments = mysql_real_escape_string($_POST['Comments']);
}else{
  $comments = "";
}
自从一个用户在他们的数据中添加了符号和符号,它破坏了我的sql语句。我认为这同时也保护了数据。但刚才我收到了一份意见书,在数据库的评论栏中我看到:

 /r/r/r/r/r/r/r/r/r/r/r/r/r/r/r/r/r/r/r/r/r/r/r/r/r/r/r/r/r/r/r/r/r/r/r/r/r/r/r/r/r/r/r/r/r/r
<a href="http://seowebsite.com">seohelp</a>
/r/r/r/r/r/r/r/r/r/r/r/r/r/r/r/r/r/r/r/r/r/r/r/r/r/r/r/r/r/r/r/r/r/r/r/r/r/r/r/r/r/r/r/r
当有人提交邮件时,我收到的邮件中的链接确实有效

我想
mysql\u real\u escape\u string()
应该摆脱所有这些吗

有什么建议吗?我想做一个函数,在几个不同的步骤中为我清理所有的字符串。但是,如果有一种方法可以在一个步骤中实现安全,那就太好了。

只保护*您不受SQL注入的影响,而不受跨站点脚本(XSS)的影响

*与
集合名称一起使用时行为不正常,因为它不知道正在使用的字符集。改用


为了保护自己免受XSS攻击,还必须在插入时(之前)或显示时使用or

$escaped = htmlspecialchars($string, ENT_QUOTES, 'UTF-8');

如果您希望允许某些HTML内容,请与您希望允许的元素和属性的白名单一起使用。

我不认为这是一个错误,而是一个错误的期望。事实上,在mysql数据库中存储数据时,任何HTML标记都不能被视为不安全的。