问题标签 [rest-security]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
rest - 保护 REST API
我有一个网站,它使用网络服务器上公开的其余 API。这是内容网站,免费向公众开放。因此,任何人都可以通过导航来阅读内容(在后台调用不同的 REST API)。同时,我担心有人会从浏览器中的开发人员工具中找出我的端点并调用这些(数百万次)来关闭我的服务器。我需要保护我的 REST api,但浏览器除外。我该怎么做?
java - Spring @EnableResourceServer 与 @EnableOAuth2Sso
到目前为止,我阅读的大多数教程都使用API 网关@EnableOAuth2Sso
而不是@EnableResourceServer
API 网关。有什么区别?对比的是什么OAuth2Sso
?
详细信息:我正在为基于 spring 的微服务和单页应用程序实现安全/基础架构。有一段时间,虽然我们没有安全要求,但 SPA 直接与不同主机(CORS 方)上的开放微服务对话。
现在,我使用spring-oauth
and添加了一层安全性和网关模式spring-zuul
。所以我有一个带有 & 的服务(uaa-service)@EnableAuthorizationServer
和一个带有@EnableZuulProxy
&的网关@EnableResourceServer
。我只需要密码授予类型,因此每个 SPA 都有自己的登录表单,并通过网关使用 uaa-service 令牌端点进行身份验证,然后继续使用该令牌进行进一步的请求。
这种方法有什么问题吗?我应该使用@EnableOAuth2Sso
吗?
c# - 获取响应流时出错(写入:身份验证或解密失败。):SendFailure
我有一个通过 https 调用 web 服务的脚本。当我在 C# Mono for Unity 中使用 swagger 构建时,我得到:
调用 AuthenticatePost 时出错:获取响应流时出错(写入:身份验证或解密失败。):SendFailure
我已经从 moztools.exe 导入了所有证书,甚至使用 certmgr.exe 添加了我调用 web 服务的 url,但它仍然不起作用。
现在我正在使用 ServicePointManager.ServerCertificateValidationCallback 但它从未进入我的回调,这是我的代码:
为什么即使我添加了证书也不起作用?为什么没有调用委托回调?
客户端代码:
在执行执行之前,我还尝试将证书加载到 RestClient 中。它确实加载了证书,但仍然抛出相同的错误。要加载我使用的证书:
java - 使用 jwt 令牌的弹簧安全性
我们正在设计一个可以通过移动应用程序和网络应用程序访问的应用程序。
移动应用程序将使用公开的 REST API(我们使用 CXF)获取数据。对于 web 应用程序,我们使用 Spring MVC,它也会从 REST API 获取数据。在这两种情况下,我们都希望显示经过身份验证的用户的数据。对于身份验证,我们使用 JWT 令牌。
我的问题是我们提供了两种通过 REST 或 Web 访问数据的方式,并且都需要身份验证。我们如何在两个组件中重用我们的安全代码。
Web 组件的 URL http://localhost:8080/web/resource/
REST API 组件的 URL http://localhost:8080/rest/resource/
身份验证 URL http://localhost:8080/auth/
最初,我们考虑为每个组件设置两个不同的过滤器,即 web 和 REST。我们将从它们中的每一个中对身份验证 API 进行 REST 调用以验证令牌。这种方法的一个疑问是,如果用户通过网络,那么通过这种设计,我们将验证令牌两次。因此,最好从 REST API 调用身份验证 API,避免在 Web 中使用它,因为 REST API 总是会进行身份验证调用。
还有其他更好的方法可以做到这一点吗?
api - 为什么 API 不使用访问令牌而不是刷新令牌?
我已经看过了
https://auth0.com/blog/refresh-tokens-what-are-they-and-when-to-use-them/
据我了解,这就是 OAuth v2 的工作方式:
1) 用户将他的凭据发送到验证它并返回一个access_token
和一个的服务器refresh_token
2) 用户将此acsess_token
连同进一步的请求一起发送以表明自己的身份
3)当access_token
过期时,用户向服务器发送另一个请求,并请求一个新的和refresh_token
其他必需的参数access_token
refresh_token
这是我的问题:
有什么需要分开的refresh_token
?为什么不发送旧的access_token
(反正即将过期)换新的?
使用 a 的额外优势是refresh_token
什么?
rest - 需要哪些更改才能使我的 Restful 服务只能通过 https 而不是 http 访问?
我可以使用以下 URL 访问我的 Web 服务: http://localhost:8080/projectservices/route/rest/gethealth
但我想强制应用程序仅使用 https 访问 REST 资源: http://localhost:8080/projectservices/route/rest/gethealth
仅供参考,我正在使用 jboss wildfly 10 服务器。如果有人在这里告诉我有什么不同的方法,那将非常有帮助,您还可以建议我一些链接以更好地理解它。提前致谢!
fortify - 用于扫描公共 REST Web 服务的 HP fortify 工具有多好?
我需要分析用于扫描为我们的产品开发的基于 REST 的 Web 服务的 Fortify 工具。它是否提供相同的支持,或者我可能需要查看其他工具。
rest - 公共 URL 的 Rest API 保护
我正在使用 IONIC 3 构建一个混合移动应用程序。该应用程序具有一组可供经过身份验证的用户访问的页面和一组供匿名用户访问的页面。公共页面用于注册请求等。
该应用程序对所有私有页面使用带有 JWT 身份验证的 rest 服务。我应该采取什么样的安全措施来确保公共休息服务不被滥用。
例如,在网络上,我们要么有公共网页的 CSRF 令牌或 CAPTCHA,我如何保护公共 REST 服务。
javascript - 如何防止签名令牌用户通过浏览器开发工具访问 API 响应?
Web 应用程序已经实现了 JWT 和 HTTPS,问题是从服务器(Node js)发送到签名令牌用户的 json 响应在客户端(react js)浏览器开发工具中可见。有什么方法可以使用加密模块来防止敏感的 json API 响应被浏览器开发工具清楚地查看?注意:我尝试过混淆技术,但不相信。
rest - 是否有可用于多种客户端类型的一站式 OAuth2 工作流程?
我正在构建一个将由 OAuth2 保护的应用程序。我期望的用户类型如下:
- 基于非机密浏览器的 java 脚本客户端。(我的 Angular 客户端应用程序)
- 非机密本机应用程序客户端。(我的 iOS/android 客户端应用程序)
- 基于第三方非机密浏览器的 java 脚本客户端。(在浏览器上运行的任何第三方 JS 应用程序)
- 第 3 方非机密本机应用程序客户端。(任何第三方 iOS/android 客户端应用程序)
我的问题:
- 是否有一种工作流/授权类型适用于我以上 4 个用例?
- 如果不是,我应该考虑实施哪些工作流程以涵盖上述所有 4 个场景?