url重写:恶意url导致死循环

问题

url重写,用户输入一个随意url可能导致出现死循环,如http://xxx/xxx/ddd.!@#$

结果如

原因是因为正则表达式不够精确导致此结果:

本人之前采用

<rule>
       <from>/jsp/postBlog</from>
       <to>/jsp/postBlog.action</to>
   </rule>

的规则,导致输入http://localhost:8080/iustest/jsp/postBlog.html造成死循环

解决方法:更改rule

<rule>
       <from>^/jsp/postBlog$</from>
       <to>/jsp/postBlog.action</to>
   </rule>

问题解决。输入http://localhost:8080/iustest/jsp/postBlog.html报404错误,不会进入死循环了

分析原因:

/jsp/postBlog      意思是:包含"/jsp/postBlog"字符内容就能被检索,如"/jsp/postBlog.html"

^/jsp/postBlog$  意思是:只有包含"/jsp/postBlog"字符内容就能被检索,而"/jsp/postBlog.html"不能被匹配到 

原文地址:https://www.cnblogs.com/xiaoliu66007/p/3029269.html