【问题标题】:Is this enough for a secure site? (4 small functions) [duplicate]这对安全网站来说足够了吗? (4个小功能)[重复]
【发布时间】:2011-10-30 17:45:29
【问题描述】:

可能重复:
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 的攻击...

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

【问题讨论】:

  • 重复是什么意思?如果我在重新编码函数之前使用相同的方式过滤输入。
  • 可能重复我的意思是您问题的部分上下文已被另一个问题所涵盖。在我看来,您的问题是您想学习如何进行正确的编码,但是它看起来与多个内容域混合在一起,因此我建议了一个与主题具有相同问题的重复问题。例如,您是 mysql_real_escape_string,但它与任何 mysql 无关。

标签: php mysql security


【解决方案1】:

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

【讨论】:

    猜你喜欢
    • 2011-02-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-06-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多