当前位置: 首页 > news >正文

郑州建站网中国建筑网官网新闻

郑州建站网,中国建筑网官网新闻,做网站的材料,网站建设工作会议上的讲话思路 1、优化正则表达式 2、正则表达式无法优化的话,可以考虑限制匹配次数,或者限制匹配时间 限制 匹配次数 public class CountedCharSequence implements CharSequence {private final CharSequence charSequence;private long count;public Counte…

思路

1、优化正则表达式
2、正则表达式无法优化的话,可以考虑限制匹配次数,或者限制匹配时间

限制 匹配次数

public class CountedCharSequence implements CharSequence {private final CharSequence charSequence;private long count;public CountedCharSequence(CharSequence charSequence, long count) {this.charSequence = charSequence;this.count = count;}@Overridepublic String toString() {return charSequence.toString();}@Overridepublic int length() {return charSequence.length();}@Overridepublic char charAt(int index) {if (index <= 0) {throw new IllegalArgumentException("Regex match over max " + count + " times");}count--;return charSequence.charAt(index);}@Overridepublic CharSequence subSequence(int start, int end) {return charSequence.subSequence(start, end);}
}

模拟Dos攻击

String str = "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa";long start = System.nanoTime();
Pattern.compile("^(a+)+$").matcher(str).matches();
System.out.println(((System.nanoTime() - start)) + " nano seconds");执行用时
1399200 nano seconds

超过 1亿 就会报错

long start1 = System.nanoTime();try {Pattern.compile("^(a+)+$").matcher(new CountedCharSequence(str, 100_000_000)).matches();
} catch (Exception e) {System.out.println(e.getMessage());
}System.out.println(((System.nanoTime() - start1)) + " nano seconds");执行用时
Regex match over max 100000000 times
601800 nano seconds

限制 匹配时间

import java.util.regex.Pattern;public final class TimedCharSequence implements CharSequence {private final CharSequence sequence;private final long timestamp;public TimedCharSequence(CharSequence sequence, long nanoseconds) {this.sequence = sequence;this.timestamp = System.nanoTime() + nanoseconds;}@Overridepublic String toString() {return sequence.toString();}@Overridepublic int length() {return sequence.length();}@Overridepublic char charAt(int index) {if (timestamp < System.nanoTime()) {throw new IllegalStateException("Regex match timeout");}return sequence.charAt(index);}@Overridepublic CharSequence subSequence(int start, int end) {return sequence.subSequence(start, end);}
}

模拟Dos攻击

String str = "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa";long start = System.nanoTime();
Pattern.compile("^(a+)+$").matcher(str).matches();
System.out.println(((System.nanoTime() - start)) + " nano seconds");执行用时:
1385400 nano seconds

超过 给定时间间隔就报错

long start1 = System.nanoTime();try {Pattern.compile("^(a+)+$").matcher(new TimedCharSequence(str, 10_000)).matches();
} catch (Exception e) {System.out.println(e.getMessage());
}System.out.println(((System.nanoTime() - start1)) + " nano seconds");执行用时:
Regex match timeout
123100 nano seconds

[Ref]

[Ref] 限制正则表达式执行时间

http://www.yayakq.cn/news/122859/

相关文章:

  • 南通网站建设规划书桂林昨晚发生的新闻
  • 网站建设优化价格产品推广语
  • 郑州网站建设兄长好建设工程类型分为几类
  • 尼乐清网站建设惠州搜索引擎优化
  • 关于网站备案的44个问题自己怎么做网上注册免费的网站
  • 米拓网站建设步骤wordpress 4.2 zh cn
  • 翻书效果网站长沙网站设计公司重庆标志
  • 潍坊手机网站制作广州教育平台登录入口
  • 外发加工网站百度网站建设的目的
  • wordpress 提交评论windows优化大师是什么软件
  • 毕业网站设计广州网站设计网站制作
  • 松江做网站公司太原集团网站建设
  • 轴承外贸网站怎么做简单的asp网站源码
  • 上网建站微网站怎么用
  • 网站开发制作公重庆奉节网站建设公司电话
  • php 电子商务网站建设徐州赶集网招聘最新招聘信息
  • 网站wordpress免费影视api接口app源码
  • 网站建设到哪个店做家居企业网站建设咨询
  • 做的网站百度上可以搜到吗家装公司起名
  • 网站开发前景怎么样抖音代运营协议书范本
  • 彩妆做推广的网站苏州网信信息科技股份有限公司
  • 公司网站建设youyi51seo怎么做优化计划
  • 设计logo网站官网常州网站建设公司服务
  • 不花钱网站怎么做永久免费自助建站软件
  • 保定建网站沧州房产信息网
  • 类似淘宝网站建设费用用wordpress建站会不会显得水平差
  • 中国的网站域名北京百度网站排名优化
  • 手机网站首页设计网站建设报价流程
  • 服务器绑定网站打不开wordpress做淘宝客可以加入api
  • 乐清网站建设公司哪家好郑州大型网站建设