0

我有两个应用程序,一个是业务流程管理 (BPM),另一个是文档管理系统 (DMS),两个系统都公开 Web 服务以实现与其他系统的集成。两个系统都提供主登录用户名和密码来提供 JSON API 身份验证。例如在 BPM 中启动一个流程(“process1”);DMS 可以发送以下 API 调用

/jw/web/json/workflow/process/start/process1?master_username=BPMadmin&master_password=982716171717&loginAS=currentusername

同样适用于调用 DMS Web 服务。

在此处输入图像描述

这种安全方法的限制是我无法使用 JavaScript 调用任何 DMS 或 BPM Web 服务并使用 javaScript 使用返回的 JSON,因为如果我遵循 javaScript 方法,我将暴露 master_username 和 master_password 到最后用户,他们可以手动将 LoginAs 参数修改为其他用户名并执行他们无权执行的操作。

所以我的问题是:-

  1. 我可以使用 JavaScript 使 Web 服务调用安全吗?

  2. 第二个问题我可以遵循哪些其他安全方法来使用 JavaScript 使 Web 服务调用安全?请记住,我可以将 Web 服务安全性修改为其他方法,而不是使用主登录用户名和密码,但这可能需要我方面更多的时间和精力?

在此先感谢您的帮助

4

1 回答 1

0

首先,JS 是客户端,不包含任何特殊的安全/魔法/不可逆功能,如浏览器辅助加密引擎、用于密钥生成的高速率 SPRNG 等。长话短说,你用 js 做的任何事情都不安全,它可以被混淆,但它不会安全。这就是你已经提出的观点。另一种方法是将您的服务器用作“代理”。因此,假设您正在设计一个 JS 辅助 gui 并显示一些文档,然后您向您的应用服务器(不是 BPM 或 DMS)发出 AJAX 请求,它充当代理,将对 DMS 进行身份验证并调用 WS,然后将结果返回给您的 JS :) 所以您的设置看起来像 JS (session)-> App (ws auth)-> DMS -> App (sesion)-> JS(我假设您有经过身份验证的用户,我们将使用用户会话作为 JS <-> 服务器安全通道,如果不是,您将不得不合并一些其他的 js 身份验证机制,也许是一次通过或其他东西,但它会很容易,因为它是您的系统)。瞧。唯一的安全考虑是不允许任何人调用您的服务器代理站点:)

于 2012-11-23T08:38:35.590 回答