微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

带有ID或用户名的JSP中的引用

如何解决带有ID或用户名的JSP中的引用

| 在jsp Login或Session()中,最好在会话中放入用户名或ID? 并在servlet或jsp页面上进行测试吗? 我在外面的jsp页面中使用此代码,但我认为这不安全
 <%if(session.getAttribute(\"username\") == null){%>
<%
String err ; 
Connection cnn;
  Class.forName(System.getProperty(\"database.driver\",\"com.MysqL.jdbc.Driver\"));
 cnn = DriverManager.getConnection(\"jdbc:MysqL://localhost:3306/sondage\",\"root\",\"\");
  Statement stat1 = cnn.createStatement();

  String Username,Password;

  Username=request.getParameter(\"UserName\");
  Password=request.getParameter(\"passWord\");

  //Le nomre de produits
ResultSet resultat = stat1.executeQuery(\"select * from utilisateur where username =\'\"+ Username +\"\' and password = \'\"+Password+\"\'\");
if (resultat.next()) {

session.putValue(\"username\",Username);

    Requestdispatcher rd =request.getRequestdispatcher(\"Vote.jsp\");
    rd.forward(request,response);

}
else {
    Requestdispatcher rd =request.getRequestdispatcher(\"authentification.jsp?err=1\");
    rd.forward(request,response);
     }
    %>
    

解决方法

        这完全取决于您。我个人只是在其中放置了一个表示“ 1”实体的Javabean,这样我就可以立即访问其所有属性,并且通常在servlet中进行操作。
@Override
protected void doPost(HttpServletRequest request,HttpServletResponse response) throws ServletException,IOException {
    String username = request.getParameter(\"username\");
    String password = request.getParameter(\"password\");
    User user = userDAO.find(username,password);

    if (user != null) {
        request.getSession().setAttribute(\"user\",user);
        response.sendRedirect(\"userhome\");
    } else {
        request.setAttribute(\"message\",\"Unknown login,try again\");
        request.getRequestDispatcher(\"/WEB-INF/login.jsp\").forward(request,response);
    }
}
只有几件事情是怪异的/不安全的:
<%if(session.getAttribute(\"username\") == null){%>
为什么要检查?是否不允许该用户以其他用户身份重新登录?为此,您应该使用
Filter
ResultSet resultat = stat1.executeQuery(\"select * from utilisateur where username =\'\"+ Username +\"\' and password = \'\"+Password+\"\'\");
这是一个SQL注入孔。继续阅读有关SQL注入攻击和准备好的语句的信息。 最后,我错过了“ 6”块,在该块中,您正确地关闭了JDBC资源,以防止它们泄漏,这可能导致您的应用程序在DB耗尽所有资源时长期崩溃。     

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。