这样可以避免注入请求吗
Is this good to avoid injection requests
我必须在请求参数中获取 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
通过有效
您提供的代码验证 URL。
如果您打算将其存储在 DBMS 中,您还应该使用 mysqli::real_escape_string
or PDO::quote
对其进行转义
您可能还想对它进行清理,尤其是当您将它展示给毫无戒心的网站访问者时。您可以使用 filter_var($s, FILTER_SANITIZE_URL)
.
来做到这一点
请记住,不受信任的人可以将恶意文本字符串输入网站。
我必须在请求参数中获取 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
通过有效
您提供的代码验证 URL。
如果您打算将其存储在 DBMS 中,您还应该使用 mysqli::real_escape_string
or PDO::quote
您可能还想对它进行清理,尤其是当您将它展示给毫无戒心的网站访问者时。您可以使用 filter_var($s, FILTER_SANITIZE_URL)
.
请记住,不受信任的人可以将恶意文本字符串输入网站。