如何防止服务器响应被用户修改?

     2023-02-27     239

关键词:

【中文标题】如何防止服务器响应被用户修改?【英文标题】:How to prevent response from the server modify by users? 【发布时间】:2021-09-21 18:59:19 【问题描述】:

我已经使用 spring、java 和 angular 构建了一个系统。当用户成功登录系统后,后端将获取特定用户的角色列表。然后,我意识到来自服务器的响应可以在到达用户之前修改。因此,用户有可能为自己添加更多角色并执行非法操作。

例如: 用户 A 应该只有查看数据的角色。但是当 API 调用后端获取角色时,用户会截取服务器的响应并添加 modify role 给自己。现在用户可以看到修改按钮并开始修改。

有什么办法可以防止这种情况发生吗?

【问题讨论】:

你无法阻止它的发生,所以你必须让它变得无关紧要——服务器应该信任客户端在发出请求时声称它拥有的角色。您不能依靠禁用 UI 中的按钮来保护您的数据。 你可以看看 JSON Web Tokens (JWT),它可能支持类似的东西。您基本上会在令牌的有效负载中发送声明,然后客户端将令牌发送回服务器。但是,在信任 JWT 之前,服务器会对其进行验证,即它使用密钥从令牌创建哈希,并将其与之前创建并发送给客户端的哈希进行比较(并且可能还会在内部存储该哈希)。 是的,我已将 Bearer Token 用于身份验证部分 【参考方案1】:

让后端检查每个请求中的用户角色。我的意思是,如果您的用户请求一个操作(具有修改的角色),您总是检查用户是否具有有效的令牌以及他们的角色(保存在您的数据库中)是否正确。这种方式与用户发送给您无关,您始终确认该操作是否允许。

在这种情况下,做一些非法行为的唯一方法是拥有其他用户访问令牌,但这是另一个安全问题。

【讨论】:

这是否意味着我需要在系统中的每个 Controller 上实现角色检查? 我不这么认为。我的意思是,您可以检查角色以显示或隐藏应用程序的某些部分,但有关允许的用户操作的真正检查必须始终在后端。

IOS - 如何防止后台按钮被点击?

】IOS-如何防止后台按钮被点击?【英文标题】:IOS-howtopreventbuttoninbackgroundfrombeingtapped?【发布时间】:2017-08-0310:52:41【问题描述】:我在UIButton前面看到了UIView。在透明的UIView上还有一些其他的UIViews,用户可以与之交互。如何防... 查看详情

如何防止签名令牌用户通过浏览器开发工具访问 API 响应?

...问题描述】:Web应用程序已经实现了JWT和HTTPS,问题是从服务器(Nodejs)发送到签名令牌用户的json响应在客户端(reactjs)浏览器开 查看详情

如何防止linux系统中某个关键文件被修改

在Linux环境中,有些重要的配置文件是不允许任何人(包括root用户)进行修改的。为了防止一不小心,被误删除或修改操作,可以需要设定该文件的“不可修改位(immutable)”权限。我们以/etc/fstab文件为例,该文件中记录着硬盘重... 查看详情

如何防止 wcf 在响应中添加转义字符?

...发布时间】:2020-11-0219:40:48【问题描述】:我使用WCF作为服务器,使用android应用作为客户端。如果响应包含转义字符,我在解析android中的响应时遇到问题,例如用户输入他的名字"mohammed\\\\maincenter//77132131& 查看详情

如何防止用户代理被用户更改

】如何防止用户代理被用户更改【英文标题】:Howtopreventuser-agenttobechangedbyuser【发布时间】:2015-12-2416:00:53【问题描述】:我正在开发一个应用程序,并且有一个页面我只希望它可供从iphone设备访问的用户使用..据我们所知,用... 查看详情

当用户被删除时,如何防止默认图像被删除?

】当用户被删除时,如何防止默认图像被删除?【英文标题】:Howtopreventdefaultimagefrombeingdeletedwhenausergetsdeleted?【发布时间】:2019-06-0208:43:38【问题描述】:我有一个用户个人资料图像的模型,当我删除具有默认图像的用户时,... 查看详情

防止空 JSON 响应被映射 RestKit 0.22.0

...到CoreData中的对象时遇到问题,这会导致错误。来自我的服务器的GET响应示例如下:"status":"Success","result":"users":["id":240 查看详情

HTML5 游戏 - 如何防止修改变量

】HTML5游戏-如何防止修改变量【英文标题】:HTML5game-howtoprotectagainstmodificationofvariables【发布时间】:2012-10-1723:03:24【问题描述】:我在画布中编写了HTML5游戏,但遇到了问题。我是这样使用var的:varscore=0;//anothercode++score;但用户... 查看详情

如何防止按钮双击

...活动中有一个按钮。当用户点击按钮时,会显示进度并向服务器发送请求,收到请求的响应后,会隐藏进度并打开下一个活动。但是,如果用户有时间多次按下按钮,则会打开两个或更多活动。为了防止双击,我使用DebouncedOnClic... 查看详情

如何防止 Mongoose 在修改用户后重新散列用户密码?

】如何防止Mongoose在修改用户后重新散列用户密码?【英文标题】:HowtopreventMongoosefromrehashingtheuserpasswordsaftermodifyingauser?【发布时间】:2017-09-2803:08:18【问题描述】:那里有很多教程,告诉在您的userSchema页面中使用bycrypt。保存... 查看详情

如何防止远程进程在 Windows 中被关闭?

】如何防止远程进程在Windows中被关闭?【英文标题】:HowtopreventaremoteprocessfrombeingclosedinWindows?【发布时间】:2020-08-1205:29:54【问题描述】:有一个程序我无法修改它的代码已打开。我想创建一个“观察者”来挂钩该程序的关闭... 查看详情

如何防止网站被***防止网站数据被***篡改

如何防止网站被***防止网站数据被***篡改分类专栏:服务器安全网站被黑网站安全网站被篡改如何防止网站被黑网站安全服务如何防止网站被挂马如何防止网站被侵入网站安全维护网站安全防护服务网站安全问题web网站安全服务... 查看详情

淘宝网质量属性分析

...的用户 刺激:海量的用户访问 响应:采用分布式服务器进行处理 响应度量:网站系统没有崩溃二:可修改性分析 用户可以修改界面; 修改某个子系统或服务时,不影响其他子系统或服务; 刺激源:开发... 查看详情

如何防止headermanipulation

...创建完全受其控制的其他响应。如今的许多现代应用程序服务器和框架可以防止HTTP头文件感染恶意字符。例如,Microsoft的.NET框架的最新版本会在CR、LF和NULL字符被传送给HttpResponse.AddHeader()方法时将其转换为%0d、%0a和%00。如果您... 查看详情

JanusGraph 图片在查询超时后停止响应,如何防止?

...t?【发布时间】:2020-05-2411:05:38【问题描述】:当JanusGraph服务器超过他的“evaluationTimeout”时,服务器停止响应我正在使用默认的docker镜像janusgraph/janusgraph:latest 查看详情

如何防止内部用户地址被冒用发邮件

在缺省情况下Anonymoususer权限组有下面的权限:Ms-Exch-SMTP-SubmitMs-Exch-SMTP-Accept-Any-SenderMs-Exch-SMTP-Accept-Authoritative-Domain-SenderThispermissionallowssendersthathavee-mailaddressesinauthoritativedomainstoe 查看详情

防止用户删除、修改、分机

...希望阻止用户甚至其他软件删除、修改或复制文件。我将如何开始实施呢?【问题讨论】:尝试详细说明,展示一些示例等等。现在完全 查看详情

淘宝网的质量属性分析总结

...的用户  刺激:海量的用户访问  响应:采用分布式服务器进行处理  响应度量:网站系统没有崩溃  二:淘宝网的可修改性分析  用户可以修改界面;  修改某个子系统或服务时,不影响其他子系统或服务;  ... 查看详情