这对于安全的网站来说足够了吗? (4个小功能)

时间:2011-10-30 17:45:30

标签: php mysql security

  

可能重复:
  PHP: the ultimate clean/secure function

我今天修改了我网站的安全过滤器。我过去常常过滤输入而不对输出做任何事情。

这是:

所有用户输入的变量都要经过这两个功能,具体取决于类型:

PS:因为我没有从头开始编码,所以我为所有变量做了这些变量,包括那些在查询中没有使用的变量。我知道这是一个性能杀手,并将取消它。对不起比安全更好吗?

// numbers (I expect very large numbers)
function intfix($i)
{
   $i = preg_replace('/[^\d]/', '', $i);
   if (!strlen($i))
      $i = 0;
   return $i;
}

// escape non-numbers
function textfix($value) {
    $value = mysql_real_escape_string($value);
    return $value;
}

XSS阻止:

输入 - 过滤用户提交的文字,例如帖子和消息。如你所见它目前是空的。不确定是否需要strip_tags。

输出 - 在所有html输出上

function input($input){
    //$input = strip_tags($input, "");
    return $input;
}


function output($bbcode){

$bbcode = textWrap($bbcode); // textwrap breaks long words
$bbcode = htmlentities($bbcode,ENT_QUOTES,"UTF-8");
$bbcode = str_replace("\n", "<br />", $bbcode);

// then some bbcode (removed) and the img tag
$urlmatch = "([a-zA-Z]+[:\/\/]+[A-Za-z0-9\-_]+\\.+[A-Za-z0-9\.\/%&=\?\-_]+)";

$match["img"] = "/\[img\]".$urlmatch."\[\/img\]/is";
$replace["img"] = "<center><img src=\"$1\" class=\"max\" /></center>";

return $bbcode;
}

我包含了img标签,因为它可能容易受到CSS ...

你怎么看?有什么明显的错吗?够好吗?

1 个答案:

答案 0 :(得分:1)

看起来不错,但您可以轻松地为文本和整数创建一个函数,首先检查其类型,然后对其进行操作。