我正在寻找一个很好的解决方案来防止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'));}
}
?>
答案 0 :(得分:2)
你在这里做的是逃避两种不同用途的输入:HTML和MySQL。不要那样做;魔术引号因某种原因被删除了。
你应该做的是逃避实际使用变量的地方,并且在数据库访问的情况下,使用PDO或MySQLi而不是几乎弃用且通常不好的mysql_
系列函数。