拥有友好的 URL 通常是一件好事。但是,有时这似乎是个坏主意。您的经验法则是什么?
例如,考虑我想要显示注册成功页面的情况。我希望所有底层逻辑都相同。但是,根据他们的注册方式,我可能想为以某种类型的角色注册的人显示不同的消息。
以下是 "hackable" 的一些即兴示例(如链接中所述)网址:
- http://www.example.com/RegistrationSuccess.aspx?IsCertainRole=true
- http://www.example.com/RegistrationSuccess.aspx?role=CertainRole
- http://www.example.com/RegistrationSuccess.aspx?r=2876
所有这些看起来都很糟糕,因为我不希望 URL 被发现。另一方面,我讨厌为了稍微修改成功消息而做更复杂的事情。
你会如何处理?
最佳答案
请记住,混淆 URL 不是安全措施。你永远不应该相信外部输入——过滤、净化和实现限制性逻辑。无论您认为您的混淆方案多么聪明,人们已经相对轻松地破解了复杂得多的安全方案。
作为一般经验法则 - 没有充分的理由故意混淆 URL。使用 URL 来传达读取操作(资源路径)。使用 POST 请求来传达写入操作(添加/修改数据)。如果用户不应该能够通过 URL 执行某些操作,则应通过服务器端和请求方法对其进行监管。
关于friendly-url - 什么时候可以故意混淆 URL?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/342048/