防止mysql注入和xss攻击

时间:2012-08-31 00:30:59

标签: mysql xss code-injection

我正在寻找一个很好的解决方案来防止mysql注入和xss攻击。我读了很多科目,但对我来说还不清楚。

我只想允许某些bb代码,如[b],[i],[u]。就是这样。

请告诉我这是否可以:

<?php
$escape = array('input_one','input_two','get_ids_from_url','etc');

foreach($escape as $input)
{
    if(isset($_POST[$input])) 
    {$_POST[$input] = mysql_real_escape_string(htmlspecialchars(strip_tags($_POST[$input]), ENT_QUOTES, 'utf-8'));}
    if(isset($_GET[$input])) 
    {$_GET[$input] = mysql_real_escape_string(htmlspecialchars(strip_tags($_GET[$input]), ENT_QUOTES, 'utf-8'));}
}
?>

1 个答案:

答案 0 :(得分:2)

你在这里做的是逃避两种不同用途的输入:HTML和MySQL。不要那样做;魔术引号因某种原因被删除了。

你应该做的是逃避实际使用变量的地方,并且在数据库访问的情况下,使用PDO或MySQLi而不是几乎弃用且通常不好的mysql_系列函数。