php – 这两个功能是否过度杀菌?

前端之家收集整理的这篇文章主要介绍了php – 这两个功能是否过度杀菌?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
function sanitizeString($var)
{
    $var = stripslashes($var);
    $var = htmlentities($var);
    $var = strip_tags($var);
    return $var;
}

function sanitizeMysqL($var)
{
    $var = MysqL_real_escape_string($var);
    $var = sanitizeString($var);
    return $var;
}

我从一本书中得到了这两个函数,作者说通过使用这两个函数,我可以对XSS(第一个函数)和sql注入(第二个函数)更加安全.
这些都是必要的吗?

另外,对于清理,我使用预准备语句来防止sql注入.

我会像这样使用它:

$variable = sanitizeString($_POST['user_input']);
$variable = sanitizeMysqL($_POST['user_input']);

编辑:摆脱第一个函数的strip_tags,因为它没有做任何事情.
使用这两个功能是否足以防止大多数攻击并且对公共站点没问题?

这是真的,但这种逃避水平可能并不适合所有情况.如果要将HTML存储在数据库中该怎么办?

最佳实践规定,在显示它们时,应该逃避它们,而不是在接收值时转义它们.这允许您考虑显示来自数据库的HTML和来自数据库的非HTML,并且它确实是这种代码在逻辑上属于的地方.

清理传出HTML的另一个优点是可以发现新的攻击媒介,在这种情况下,对传入的HTML进行清理将不会对数据库中已有的值执行任何操作,而传出的清理将追溯应用而无需执行任何特殊操作

此外,请注意,如果所有<中的第一个函数中的strip_tags可能都没有效果.和>已成为& lt;和& gt;.

猜你在找的PHP相关文章