NoURL拒绝Web应用25年来的不合理

  • 减少50%以上参数验证
  • 减少50%以上注入可能
  • 减少90%以上权限验证
  • 减少的都是工作量,提升的是应用安全和性能。

Web应用最具讽刺的事情:服务端经过权限过滤返回给用户一个含有参数的链接,在用户请求该链接时,服务器端还要进行权限安全验证、参数安全验证。

因为URL可以非法访问?参数可能篡改? 
是该终结这种模式了。

我们为什么要暴露URL和参数?

传统模式 
场景:一个列表页中服务端会生成如下链接 
http://www.nourl.io/article.html?id=1 
当用户请求该链接时,服务器端会验证地址权限和参数安全

NoURL模式 
试试在服务端将上面的URL变成一个随机URL返回给用户,并在服务端保存对应关系 
http://www.nourl.io/65yjR1 
当用户请求该URL时,服务器端自动转换为真实请求处理。

发生的变化: 
无须参数安全验证,因为无参; 
无须权限验证,因为服务端给你的链接都是有权限的。

现实场景: 
目前流行将长链接转化为短链接(链接和参数安全); 
当你忘记密码时,发送到你邮箱里面的修改密码的链接(权限安全)。

也许你会疑惑: 
问:盗取URL怎么办? 
答:URL可以与会话绑定,别人拿去无用。 
问:URL有效期呢? 
答:随你怎么设定,甚至是一次性的。 
问:百度抓取怎么办? 
答:你可以让GET请求的随机URL长期有效。 
问:POST请求怎么办? 
答:你可以随机地址,随机参数名,只需验证哪些必须来自用户输入的数据。 
问:AppScan岂不是没法扫描漏洞了? 
答:未来会有让你选择是否随机URL的开发框架。 
……

再见Spring Security,再见Apache Shiro…

 
posted @ 2017-06-09 14:57  Rooode  阅读(166)  评论(0)    收藏  举报