首页 > 解决方案 > 杜松子酒限制路线

问题描述

我的 webapp 有滥用手段,用户可以访问他们不应该访问的东西,例如127.0.0.1/users/1& 127.0.0.1/users/2&127.0.0.1/users/3等,在这些内容中它会显示用户的注册电子邮件、ip 等(通过 JSON,因此 Web 服务器可以返回自定义消息,问候,并允许用户在个人资料设置中编辑帐户数据)

这是我的路线的样子:

forum.GET("/users/:user_id", routeFunc(UsersGET))

我正在使用 Gin-Gonic HTTP 框架创建一个虚拟论坛,有人可以告诉我如何阻止用户访问/users/路由,同时允许实际的 Web 服务器自由使用吗?也许将我链接到正确的方向。谢谢!

(服务器使用它来返回类似的东西,Welcome Back, USERNAME)。

标签: goroutes

解决方案


您需要向服务器添加身份验证和授权。

身份验证是用户通过共享秘密(如密码哈希)向您证明其身份的地方,而授权是您检查是否允许经过身份验证的用户执行他们尝试执行的操作的地方。

有许多第三方服务可以帮助您解决这个问题(例如Auth0),他们可以为您处理身份验证并为您提供授权库。

通常人们通过在每个 http 请求之前运行的中间件(例如gin-jwt )将身份验证绑定到他们的 Gin-Gonic 服务器。一旦该中间件对用户进行身份验证,您就可以在句柄中添加一些逻辑,说明只有用户只能查看自己。

希望这可以帮助。祝你好运。


推荐阅读