Wie bereits erwähnt, gibt es im Projekt ein separates System als Berechtigungssystem. Der aktuelle Ansatz besteht darin, dass jede Anfrage an das Geschäftssystem vom Geschäftssystem abgefangen und die angeforderte URL weitergeleitet wird das Berechtigungssystem für die Verifizierung und Verifizierungsinitiierung. Ob der anfragende Benutzer über diese Berechtigung verfügt.
Oder Sie können auch alle Berechtigungen des Benutzers aus dem Berechtigungssystem abrufen und diese im Geschäftssystem überprüfen
Egal welche Methode verwendet wird, es fühlt sich so an, als ob sie in der Mitte manipuliert werden kann, sodass es sich nicht sehr unsicher anfühlt
Ich würde gerne fragen, ob es besser ist, die Berechtigungsüberprüfung in einem verteilten System durchzuführen. Vielen Dank, Senior
楼主的问题与权限无关,纯粹是接口调用的安全性。一般做法有:
内容明文传输,但加上校验码,校验码由双方约定的一个密钥生成,篡改者无法生成正确的校验码。
使用约定密钥加密解密整个传输内容。
登录后请求权限系统,将返回的权限菜单等信息放入缓存(自己用Map实现或Nosql,建议Nosql集群。要注意菜单有更新,则先清空用户的redis数据,再将最新的信息同步到redis,redis没信息就从数据库中取),再返回Java Web Token(包括时间戳、标识等)。
项目安全点就用Https,Spring-Security(访问接口权限、防CSRF),每个接口都要验签,token加时间戳等。
你这个有点像OAuth2.0解决的问题