当前位置: 首页 > 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/630675/

相关文章:

  • 做网站前的准备什么软件万网企业邮箱登陆界面如何嵌入到自己的网站
  • 有哪些网站是中国风网站高唐企业建网站服务商
  • 网站建设属于那个科目网络口碑营销的特点
  • 网站技术培训班怎么恢复网站数据库文件位置
  • 芜湖高端网站建设公司wordpress 根分类
  • 怎么做坑人网站济南富库网络技术有限公司
  • 高性能网站建设 下载怎么做记步数的程序到网站
  • python官方网站网站开发中的开版什么意思
  • 建设网站需要哪些资质学校门户网站建设需要多少费用
  • 旅游网站建设的详细方案公司网站做的一样算不算侵权
  • 乐山网站公众号建设做一个公司网站需要多少钱
  • 南宁建设厅网站网络公司网站绪论
  • 简约网站模版wordpress淘宝客模板图片
  • 微网站风格做301到别人网站
  • 网站演示网站代码怎么做专题网站
  • 珠海市网站设计公司如何在网站做404页面
  • 网站关闭公告代码建设网站证书
  • aspnet网站开发书制作网站赚钱
  • 招聘网站评估怎么做网站建设情况的汇报
  • 惠州h5网站建设做搜狗手机网站排名软
  • 卓商网站建设临淄网站建设
  • 化妆品网站建设网站上海殷行建设网站
  • 徐州网站二次开发网站中的游戏是怎么做的
  • 发布消息做任务的网站做物流行业网站的开发公司
  • 专业网站制作咨询设计官网入口
  • 元芳重庆网站建设网站显示正在建设中
  • 怎么设置网站字体wordpress文章缩略图
  • 有哪些专门做写字楼的网站专业的建网站公司地址
  • 宁波专业网站建设公司济南模板网站设计
  • 购物网站代码模板免费网店有哪些平台