我有两个应用程序,一个是业务流程管理(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参数修改为其他用户名,并执行他们无权执行的操作。
所以我的问题是: -
我可以使用JavaScript使网络服务调用安全吗?
第二个问题我可以遵循哪些其他安全方法来使用javaScript使Web服务调用安全?请记住,我可以将网络服务安全性修改为其他方法,而不是使用主登录用户名和密码,但这可能需要我的更多时间和精力?
提前感谢您的帮助 最诚挚的问候
答案 0 :(得分:0)
首先,JS是客户端,不包括任何特殊的安全/魔术/不可逆功能,如浏览器辅助加密引擎,用于密钥生成的高格栅SPRNG等等。这么长的故事,你用js做的任何事都不安全,它可以被混淆,但它不会安全。这就是你已经提出的观点。另一种方法是将您的服务器用作“代理”。所以假设您正在设计JS辅助gui并显示一些文档,然后您向应用服务器(不是BPM或DMS)发出AJAX请求,它充当代理,将对DMS进行身份验证并调用WS然后将结果返回给你的JS :)所以你的设置看起来像JS(会话) - > App(ws auth) - > DMS-> App(sesion) - > JS(我假设您已经过身份验证的用户,我们将使用用户会话作为JS< - >服务器安全通道,如果不是,您将不得不合并一些其他js auth机制可能一次通过或者其他什么,但它会很容易因为这是你的系统)。瞧。只有安全考虑是不允许任何人调用您的服务器代理站点:)