浏览器伪装IP访问网站实现及防御

为防止《今天发现文章评论数与实际不符》再一次发生,特别搜索了下伪装IP的实现。实现过程如下:
使用火狐浏览器安装Modify Headers插件,使用如下图添加好后,点击Start,就可以模拟伪装IP。在Value中可以做一些注入(自由发挥)

防御:从Nginx层次,重新配置conf文件
server {
    listen       80 default;
    server_name  _;
    location / {
        proxy_pass http://127.0.0.1:8082/wenwen-blog/;
        proxy_set_header   Host    $host;
        proxy_set_header   X-Real-IP   $remote_addr;
        #proxy_set_header   X-Forwarded-For $proxy_add_x_forwarded_for;以前的配置
        proxy_set_header   X-Forwarded-For $remote_addr;#现在直接配置获取真实客户端IP
        index  index.html;
    }
}
代码后台同样需要优化,获取IP需要判断IP的有效性,代码如下:
package org.jiucheng.util;

import java.util.regex.Matcher;
import java.util.regex.Pattern;

public class IpUtil {
    
    private static final long[] MASK = {0xFF000000,0x00FF0000,0x0000FF00,0x000000FF};
    private static final Pattern PATTERN = Pattern.compile("(\\d|[1-9]\\d|1\\d{2}|2[0-4]\\d|25[0-5])(\\.(\\d|[1-9]\\d|1\\d{2}|2[0-4]\\d|25[0-5])){3}");
    
    public static boolean isIp(String ip) {
        if(ObjectUtil.isNull(ip)) {
            return false;
        }
        Matcher matcher = PATTERN.matcher(ip);
        return matcher.matches();
    }
    
    public static boolean isIp(Long ip) {
        if(ObjectUtil.isNull(ip) || ip.compareTo(Long.valueOf(0L)) < 0 || ip.compareTo(Long.valueOf(4294967295L)) > 0) {
            return false;
        }
        return true;
    }
    
    public static Long toLong(String ip) {
        if(!isIp(ip)) {
            return ObjectUtil.getNull();
        }
        String[] is = ip.split("\\.");
        long rs = 0L;
        for(int i = 0, len = is.length; i < len; i ++) { rs += Math.pow(256,(len - i - 1)) * Long.valueOf(is[i]); } return rs; } public static String frLong(Long ip) { if(!isIp(ip)) { return ObjectUtil.getNull(); } StringBuilder sb = new StringBuilder(); for(int i = 0,len = MASK.length; i < len; i ++) { sb.append(Long.toString((ip & MASK[i]) >> (len - i - 1) * 8)).append(".");
        }
        return sb.substring(0, sb.length() - 1);
    }
    
}
57

评论

  1. 测试伪装IP是否能预防。

  2. 我来试试 哈哈

    1. @Mrxn 欢迎,有时间帮做个全站检测。

  3. 沈吉祥的博客,换了域名,麻烦更新下http://blog.wexinqq.com/ ,谢谢

    1. @www 已更正!

  4. 来支持一下,欢迎回访哦!

    1. @小小蚂蚁博客 谢谢来访,以后常来!你的博客不错。

发表评论

电子邮件地址不会被公开。 必填项已用*标注

点击更换