安全性设计之-ip白名单设计.pdfVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 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 = *;

文档评论(0)

166****9181 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档