对于一个学校项目,我和我的项目组正在将应用程序的前端和后端分开。现在,我要确保正确识别此应用程序的安全性,因为它将被公开使用。
我已经在研究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();
}
我想知道这是否足够安全,以及使通信更安全的方式
术语“安全的前后通信”包括很多内容,并且使用HTTPS
来解决的只是加密,而缺少卫生,身份验证,序列化等。
HTTPS
只是Web应用程序开发人员的项目之一如果安全是一个问题,应该发出。它加密通讯在HTTP客户端和服务器之间(不包括首次握手)。一个SSL证书将按照您所说的进行处理。 CSRF:在您的情况下,servlet过滤器应该执行以防止它。基本上,它涉及添加来自客户端的所有请求的附加标头(X-CSRF
)。对于泽西岛实施检查CsrfProtectionFilter
输入卫生:从表单输入中删除不需要的字符,或者请求可能会使服务器误解的值导致不必要的行为。在您的情况下,可以在validateLogin
功能。
小加号:OWASP top 10列出了最常见的Web应用程序攻击媒介,请检查一下!