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...

猜你喜欢

转载自rooode.iteye.com/blog/2378748