避免注射请求是否合适?

时间:2017-02-12 10:48:38

标签: php mysql sql-injection

我必须在请求参数中获取IP和URL,我需要特别避免从url字符串中注入,这是我的代码:

if(filterValidIp($ip) && filterValidUrl($url)) {
    //it's ok 
    //code....
}

url的功能:

function filterValidUrl($s) {
    $s = trim($s);
    $valid = filter_var($s, FILTER_VALIDATE_URL);
    if(!$valid === false) {
        return true;
    }
    return false;
}

URL:

?url=http://google.com?id=ss'+&ip=127.0.0.1

传递为有效

1 个答案:

答案 0 :(得分:-1)

您提供的代码验证网址。

如果您计划将其存储在DBMS中,则还应使用mysqli::real_escape_stringPDO::quote

将其转义

您可能还想对其进行消毒,尤其是如果您将其呈现给您网站上毫无戒心的访问者。您可以使用filter_var($s, FILTER_SANITIZE_URL)

执行此操作

请记住,不受信任的人可以将恶意文本字符串输入网站。