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;.

相关文章

统一支付是JSAPI/NATIVE/APP各种支付场景下生成支付订单,返...
统一支付是JSAPI/NATIVE/APP各种支付场景下生成支付订单,返...
前言 之前做了微信登录,所以总结一下微信授权登录并获取用户...
FastAdmin是我第一个接触的后台管理系统框架。FastAdmin是一...
之前公司需要一个内部的通讯软件,就叫我做一个。通讯软件嘛...
统一支付是JSAPI/NATIVE/APP各种支付场景下生成支付订单,返...