我必须在请求参数中获取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
传递为有效
答案 0 :(得分:-1)
您提供的代码验证网址。
如果您计划将其存储在DBMS中,则还应使用mysqli::real_escape_string
或PDO::quote
您可能还想对其进行消毒,尤其是如果您将其呈现给您网站上毫无戒心的访问者。您可以使用filter_var($s, FILTER_SANITIZE_URL)
。
请记住,不受信任的人可以将恶意文本字符串输入网站。