保证前端和后端之间通信的最佳方法

问题描述 投票:2回答:1

对于一个学校项目,我和我的项目组正在将应用程序的前端和后端分开。现在,我要确保正确识别此应用程序的安全性,因为它将被公开使用。

我已经在研究SSL证书,但是我想尽可能地安全。

到目前为止,我已经按照以下步骤创建了登录页面:

前端是基本的html,带有angularjs的javascript,一旦用户填写了用户名和密码并按下了登录名,我便通过POST将JSON数据发送到我的后端

$scope.sendPost = function() {
    var jsontext = JSON.stringify({
        username: $scope.username,
        password: $scope.password
    });
    $http.post("http://localhost:8080/login", jsontext).success(function(data, status) {
       $scope.user = data;
    })    
}

并且在后端,我使用jersey设置了一个servlet来处理它并发送回所需的用户数据

@POST
@Path("login")
@Consumes(MediaType.APPLICATION_JSON)
@Produces(MediaType.APPLICATION_JSON)
public String validateLogin(Request request) throws JSONException{
    JSONObject json = new JSONObject();
    // validate user blabla
    return json.toString();
}

我想知道这是否足够安全,以及使通信更安全的方式

security
1个回答
1
投票

术语“安全的前后通信”包括很多内容,并且使用HTTPS来解决的只是加密,而缺少卫生,身份验证,序列化等。

  • 加密:HTTPS只是Web应用程序开发人员的项目之一如果安全是一个问题,应该发出。它加密通讯在HTTP客户端和服务器之间(不包括首次握手)。一个SSL证书将按照您所说的进行处理。
  • CSRF:在您的情况下,servlet过滤器应该执行以防止它。基本上,它涉及添加来自客户端的所有请求的附加标头(X-CSRF)。对于泽西岛实施检查CsrfProtectionFilter

  • 输入卫生:从表单输入中删除不需要的字符,或者请求可能会使服务器误解的值导致不必要的行为。在您的情况下,可以在validateLogin功能。

小加号:OWASP top 10列出了最常见的Web应用程序攻击媒介,请检查一下!

© www.soinside.com 2019 - 2024. All rights reserved.