如何隐藏角度

时间:2018-03-05 13:14:01

标签: angular

我有一个有角度的5应用程序,我想从中发出一个http请求,它会按以下格式点击一个URL:

  

https://example.com/api?email= {{myemail@gmail.com}} &安培;传= {{我的   密码}} & input = {{user input}}

这将给我一个json回复。

表单只有一个输入框,用户将填写“用户输入”。 除此之外,我需要发送一个硬编码的电子邮件和密码,出于安全目的,我无法保留在客户端。

任何建议如何隐藏它。

1 个答案:

答案 0 :(得分:0)

首先,您不希望将这些值作为url参数提交,因为它们会在地址栏中公开:

https://example.com/api?email={{myemail@gmail.com}}&pass={{my password}}&input={{user input}}

而是对这样的特定端点进行POST或PATCH:

https://example.com/api/user

并将您的数据包含在JSON正文中,例如:

{
"email":"mickey@disney.com",
"pass":"whatever"
"input":"user data"
}

putUserData(body: any){
    const headers = new Headers({'Content-Type': 'application/json'});
    const options = new RequestOptions({ headers: headers });
    const url = 'https://example.com/api/user';
    return this._http.patch(url, body, options)
       .map((response: Response) => response.json())
}

在调用此端点之前,请先调用另一个端点以获取硬编码的电子邮件和密码,例如:

获取https://example.com/api/user/credentials

这应提供包含该数据的JSON响应:

{
"email":"mickey@disney.com",
"pass":"whatever"
}

当用户提交表单时,您可以将此对象与表单对象合并。这样,您就不会在客户端上对此数据进行硬编码,也不会将其存储在客户端的任何位置。

但是这仍然不是一个安全的解决方案,因为你传递凭证,如果他们足够坚定,黑客就很容易被抓住。