- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
安全性设计之-ip⽩名单设计
最近⼀直在做系统的接⼝开发,接⼝对于安全性有⼀定的要求,采⽤了⼀定的安全措施,各种加解密,证书⼿段也采⽤了。做了这些常见的
安全措施之后,考虑到限制⾮法ip的访问,决定采⽤ip⽩名单设计,只允许部分许可ip访问系统,未许可ip⼀律禁⽌访问,减少⾮法请求。
好了,⾔归正传,说下需求。
ip⽩名单设计需求
1. ⽀持ipv4
2. ⽀持多种校验规则
3. ⽀持单个,多个,ip范围,⽹段ip封禁策略
4. 后期要求⽀持ipv6
解决⽅案
好了,有了以上需求,我们就需要,动⼿开发了,开发之前,我们先来普及下基本的⽹络知识
现在的IP⽹络使⽤32位地址,以点分⼗进制表⽰,如。地址格式为:IP地址=⽹络地址+主机地址 或 IP地址=主机地址+
⼦⽹地址+主机地址。
在IP地址3种主要类型⾥,各保留了3个区域作为私有地址,其地址范围如下:
A类地址:~55
B类地址:~55
C类地址:~55
A类地址的第⼀组数字为1~126。注意,数字0和 127不作为A类地址,数字127保留给内部回送函数,⽽数字0则表⽰该地址是本地宿主
机,不能传送。
B类地址的第⼀组数字为128~191。
C类地址的第⼀组数字为192~223。
⼀般公司上⽹配置⽹络地址时,都需要配置 主机地址,⼦⽹掩码,默认⽹关,dns地址
主机地址:即该主机在该⽹段的唯⼀标识 如
⼦⽹掩码:即标识该主机所在⼦⽹范围,区分⽹络段和地址段
默认⽹关: ⼀个⽤于 TCP/IP 协议的配置项,是⼀个可直接到达的 IP 路由器的 IP 地址。配置默认⽹关可以在 IP 路由表中创建⼀个默认路
径。 ⼀台主机可以有多个⽹关。默认⽹关的意思是⼀台主机如果找不到可⽤的⽹关,就把数据包发给默认指定的⽹关,由这个⽹关来处理
数据包。现在主机使⽤的⽹关,⼀般指的是默认⽹关。 ⼀台电脑的默认⽹关是不可以随随便便指定的,必须正确地指定,否则⼀台电脑就
会将数据包发给不是⽹关的电脑,从⽽⽆法与其他⽹络的电脑通信。默认⽹关的设定有⼿动设置和⾃动设置两种⽅式
dns地址:⽤于解析域名信息和ip地址
好的,基础⽹络知识普及完毕。
⽩名单设计关键:
包含多个规则,可以设计分隔符,分离规则字符串为多个规则列表,分割字符;,都可。
单个ip,和多个ip⽩名单匹配规则,只要判断该规则中是否包含远端ip字符即可,实现简单如规则符:;
ip范围:范例规则字符--5
即ip在 /24 ⽹段 1-15都为合法,默认为范围闭区间
设计思路:
ipv4 分为4段,每段范围:0-255
所以⾸先找出范围ip不同部分所在的段,然后依据ip划分规则,计算
例如 -5
包含 ⽹段 -55,-55,
-5
所以只要在这个范围中ip都是合法的
⽹段地址如何判断尼,请观察 ⽹段地址规则,例如/24
⽹络地址/⽹络位数
⽹络地址:
⼦⽹掩码:
测试ip:
⽹络地址=ip⼦⽹
所以判断⼀个ip是否属于⼀个⽹段可以通过ip和⼦⽹相与得到⽹络地址,如果和⽩名单中⽹络地址相同,则允许访问
好的,分析完毕
上代码:
package com.taoyuanx.utils;
import java.util.ArrayList;
import java.util.HashSet;
import java.util.List;
import java.util.Set;
import java.util.regex.Pattern;
/**
*
* ip ⽩名单校验
*
public final class IpWhiteCheckUtil {
IP 的正则
private static Pattern pattern = Pattern
.compile((1\\d{1,2}|2[0-4]\\d|25[0-5]|\\d{1,2})\\. + (1\\d{1,2}|2[0-4]\\d|25[0-5]|\\d{1,2})\\.
+ (1\\d{1,2}|2[0-4]\\d|25[0-5]|\\d{1,2})\\. + (1\\d{1,2}|2[0-4]\\d|25[0-5]|\\d{1,2}));
public static final String DEFAULT_ALLOW_ALL_FLAG = *;
您可能关注的文档
最近下载
- 2025天津市红桥区国有资产投资有限公司招聘1人笔试备考题库及答案解析.docx VIP
- 互换性与技术测量..ppt VIP
- 2024年天津市红桥区国有资产投资有限公司人员招聘考试题库及答案解析.docx VIP
- 晋朝PPT课件教学课件.pptx VIP
- 《互换性与技术测量》课件第4章.ppt VIP
- 2023-2025年语文全国中考真题分类汇编 专题19 散文阅读(一).docx VIP
- 新生儿胆道闭锁.pptx VIP
- 2.3《峨日朵雪峰之侧》课件(共30张PPT) 2024-2025学年统编版高中语文必修上册.pptx VIP
- 2021年天津市红桥区国有资产投资有限公司校园招聘试题及答案解析.docx VIP
- 农业信息技术--农业信息技术概述 ppt课件.pptx VIP
文档评论(0)