spring - 是否有必要使用 spring security 和 ldap 加密或散列密码?
问题描述
我有一个用户登录的前端。它向具有 Spring 安全性的后端发出请求,并在 LDAP 中搜索用户。
这是我使用 ajax 的前端请求的简单代码:
function login() {
$.ajax({
url : 'http://localhost:8080/log',
type : 'POST',
contentType : 'application/json',
data : JSON.stringify({
"user" : $("#loginUser").val(),
"password" : $("#loginPass").val()
}),
success : function(jqXhr, textStatus, data) {
localStorage.setItem("user",$("#loginUser").val());
window.open("../dashboard/home.html", "_self");
console.log(data);
},
error : function(jqXhr, textStatus, errorThrown) {
console.log(errorThrown);
}
});
}
我需要知道是否有必要通过散列或加密来增加一些安全性,因为我以某种方式将纯密码发送到后端,以及正在获取 LDAP 信息的服务器中。
提前致谢。
解决方案
如果您在 POST 请求的正文中发送用户名和密码,请使用 https(基于 TLS 的 http)。您可能需要配置您的服务器来进行设置。这样做将确保没有其他人可以破译您的请求的内容。
当请求到达您的 Spring Web 应用程序时,用户名和密码将是“明文”,然后您可以使用 LDAP 服务器进行身份验证。您可以使用 LDAP over TLS 与您的服务器建立安全连接。如果您使用 Spring Security,请查看spring-ldap文档以了解 Spring 如何抽象 LDAP 连接的某些元素的概述,以及Spring Security参考以了解如何配置 Spring Security 框架以通过以下方式无缝地验证用户身份访问 LDAP 服务器。
推荐阅读
- scala - 如何编写一个函数来记录组输入
- sql - Redshift: ISO Reporting Week with YoY - 如何在没有硬编码或日历表的情况下过滤日期
- angular - Angular 6:输入初始值,没有双向数据绑定
- python - 将实时流发送到单独的前端
- matlab - 从给定坐标列表的数组中提取值列表
- css - 修复了未知宽度元素上的菱形剪辑路径?
- ios - 由于 iOS 中“不同”视图层次结构中的锚点,自动布局约束崩溃,但是
- python - 当 Python 中的单独数组相等时,将变量设置为彼此相等
- matlab - 如何在 MATLAB 中生成具有给定均值、方差、偏斜和峰度的分布?
- sqlite - 查询在 SQLite 中不起作用