php http_x_forwarded_for,容易被忽略的HTTP_X_FORWARDED_FOR攻击
function getIP() {
if (isset($_SERVER[‘HTTP_X_FORWARDED_FOR’])) {
$realip = $_SERVER[‘HTTP_X_FORWARDED_FOR’];
} elseif (isset($_SERVER[‘HTTP_CLIENT_IP’])) {
$realip = $_SERVER[‘HTTP_CLIENT_IP’];
} else {
$realip = $_SERVER[‘REMOTE_ADDR’];
}
return $realip;
}
这个是网上常见获取ip函数
其中x-forword-fox的值是可以被自定义改写的.
在firefox下通过Moify Headers插件或者用php的fsockopen()函数等方法来改写.
如果你需要将IP写入数据库并打开的错误输出,那么将HTTP_X_FORWARDED_FOR的值改成192.168.0.1′ or 1= 是可能会产生sql注射.
同样$_SERVER[“HTTP_USER_AGENT”],$_SERVER[“HTTP_ACCEPT_LANGUAGE”],$_SERVER[‘HTTP_REFERER’] 等http变量入库时也需做过滤
改进的获取ip函数
if(getenv(‘HTTP_CLIENT_IP’) && strcasecmp(getenv(‘HTTP_CLIENT_IP’), ‘unknown’)) {
$OnlineIP = getenv(‘HTTP_CLIENT_IP’);
} elseif(getenv(‘HTTP_X_FORWARDED_FOR’) && strcasecmp(ge
本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!
