[英]how to hide or secure the token when passing from javascript to web api 2
我在UI站点/项目和Web API 2以及其他站点/项目上使用javascript(angularjs)
UI项目:localhost / 12345
Web API:localhost / 98777
UI项目正在调用Web API(C#)项目,将令牌从UI传递到WebAPI以获取CRUD请求。
我在ServerSide项目中生成了令牌 - WEB API2(localhost / 98777),1-用户名/密码2-然后是url localhost:/ 98777 / Token ,传递用户名+密码+令牌
以这种方式,如果你在fiddler中调用它,它会返回一个令牌:content-type:application / x-www-form-urlencoded。 像这样生成令牌并将其写入localDB,稍后可以在您的UI应用程序中使用此生成的令牌,使用javascript(ajax / angular)调用传递给WebAPI项目。
我已经实现了在我的客户端站点中调用GET / POST / PUT方法的承载令牌。
localhost/12345 defined in Client site to get employee records via token:
----------------------------------------------
method: 'GET'
contenttype: 'application/json, charset=utf-8',
authorization: "Bearer 040jdU6ry....."
url: localhost/98777/api/employees/
这将返回所有员工的数据...它的工作原理。
localhost/98777 defined in server site web.config:
---------------------------------
<httpProtocol>
<customHEaders>
<remove name="Access-Control-Allow-Origin" />
<add name="Access-Control-Alllow-Origin" value ="*"/>
<customHeaders>
</httpProtocol>
问题? 问题是人们可以在IE / Chrome / FF中执行并打开开发人员工具,并查看javascript的来源并查看令牌。 然后在Fiddler / composer中执行代码并添加记录:(。
那么为什么我需要一个令牌呢?
有人可以建议我错过哪一部分吗? 人们可以看到令牌是正常的吗?
此应用程序将在Intranet中使用并由开发人员使用,因此我需要最大限度地保护它...
人们可以看到令牌是正常的吗?
是的,这是正常的。 据我所知,令牌只包含身份信息,以及客户端无法修改的一些声明。 这是唯一值得信赖的东西:身份。
在服务器端,您必须检查(角色/权限/业务规则)与令牌身份对应的用户是否有权执行请求的操作。
永远不要依赖客户端UI的业务规则实施。 始终仔细检查服务器端,您将是安全的。
您可以考虑以下步骤,
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.