2014-07-25 127 views
0

我很好奇java弹簧的安全部分。java弹簧的安全问题

我已经从本网站摘录了如何使用数据库做登录系统的教学。

但是,我担心有关安全问题的某些部分。

<h1>Spring Security Login Form (Database Authentication)</h1> 

<div id="login-box"> 

    <h3>Login with Username and Password</h3> 

    <c:if test="${not empty error}"> 
     <div class="error">${error}</div> 
    </c:if> 
    <c:if test="${not empty msg}"> 
     <div class="msg">${msg}</div> 
    </c:if> 

    <form name='loginForm' 
     action="<c:url value='/j_spring_security_check' />" method='POST'> 

    <table> 
     <tr> 
      <td>User:</td> 
      <td><input type='text' name='username'></td> 
     </tr> 
     <tr> 
      <td>Password:</td> 
      <td><input type='password' name='password' /></td> 
     </tr> 
     <tr> 
      <td colspan='2'><input name="submit" type="submit" 
       value="submit" /></td> 
     </tr> 
     </table> 

     <input type="hidden" name="${_csrf.parameterName}" 
     value="${_csrf.token}" /> 

    </form> 
</div> 

由于这种形式将被部署在服务器上,用户将他们的PC登录。但是,这意味着数据不会被加密。请原谅我对我的问题的微弱解释,因为我对这个java spring环境仍然陌生。我很担心将数据从用户PC发送到服务器以便在数据库中进行身份验证。

http://www.mkyong.com/spring-security/spring-security-form-login-using-database/

反正有来自用户PC上的数据包进行加密服务器或将本由Tomcat服务器来处理?

+6

配置Tomcat使用https,你会得到你的加密。 –

+1

这与spring或jave无关,但与一般的HTML/HTTP无关。表单按原样提交。现在你可以用JavaScript做一些加密了,但是会增加什么呢?代码在客户端,你需要一个双向的加密/解密算法,它不会添加任何东西。正如@AndreiStefan已经指出你应该使用https来提交这个表格(或者任何关于这个问题的安全/敏感信息)。 –

+0

感谢您的信息。 – aceminer

回答

0

如果您不使用SSL通过HTTP向您的服务器发送请求,则您的请求/响应中的数据将不会被加密。要在浏览器和Web服务器之间进行加密通信,您需要在您的tomcat中配置SSL。 this链接将有助于解释apache tomcat中的SSL配置。

Spring-security与数据如何通过HTTP通信传输无关,它更关心您的Web应用程序资源访问。像哪个URL一样,资源可由谁访问(即基于ROLE)。