【问题标题】:Method to secure the form post Express JS保护表单发布 Express JS 的方法
【发布时间】:2014-01-20 05:10:00
【问题描述】:

我在公共文件夹中使用静态页面 loginform.html,当用户按下提交时,用户名和密码会在此表单中发送到服务器路由 /login,并在此路由中完成身份验证。

在服务器端:

var express = require('express');
var app = express();


app.use(express.compress());

app.use(express.static(__dirname + '/public'));


var a = ['/'];
app.get('/', function(req, res) {
  console.log('First page called');
  res.redirect('loginform.html');
  res.end();
});

app.post('/login', function(req, res) {
  console.log('login called');
  //authentication Check//
  res.end();
});

app.listen(process.env.PORT || 3000);

在客户端:

<html>

<style media="screen" type="text/css">
@import url("css/loginform_styles.css");
 </style>

    <head>
        <title>
            Welcome to Label
        </title>
            <script type="text/javascript" src="annotationTools/js/md5.js" ></script>
            <script>

                function validateForm()
                {
                    var usrnamefield=document.forms["loginform"]["usrfield"].value;
                    var passwrdfield=document.forms["loginform"]["passfield"].value;

                    if ((usrnamefield==null || usrnamefield=="")||(passwrdfield==null || passwrdfield==""))
                      {
                        document.getElementById('valueerrorlayer').innerHTML ='Username or password field is empty';
                        //document.forms["loginform"]["errorshow"].innerHtml = 'username or password empty';
                      return false;
                      }
                    else return true;
                }
            </script>

    </head>

    <body>

    <div id = "imge_disp">
        <img src="images/logo.jpg"/>

    </div>

    <form name="loginform" id="loginform" action="login" method="post" onsubmit="return validateForm()">
        <div id = "content" align = "center">

            <p align="center"><font size="7">LabelDev</font></p> 
            <br />
            <br />

            <label> Please Enter the <b><i>Username</i></b></label>
            <br />
            <br />

            <input type="text"  name = "usrfield" id = "usrfield" onkeydown="if (event.keyCode == 13) document.getElementById('btnSearch').click()"/>
            <br />
            <br />
            <br />

            <label> Please Enter the <b><i>Password</i></b></label>
            <br />
            <br />
            <input type="password"  name = "passfield" id = "passfield" onkeydown="if (event.keyCode == 13) document.getElementById('btnSearch').click()"/>
            <br />
            <br />
            <br />

            <i><p id='valueerrorlayer' style="color:red;"> </p></i>

            <input type="submit" value="Submit"/>
        </div>
    </form>     
    </body>





</html>

问题:我希望用户名和密码在帖子中发送,这样中间人就无法读取它们(散列或加密) 问题1:对于这个解决方案,使用 enctype="application/x-www-form-urlencoded" 是否足够? 问题2:最好留在http并进行身份验证。如果是的话,你能指导我吗? Question3 : 还是转到https,然后如何创建ssl证书。

【问题讨论】:

  • 如您所见,“urlencoded”一词表示encoded 数据(不是encypted 数据)。所以我推荐使用SSL。搜索cheap ssl certificate了解更多详情:)

标签: html node.js http https express


【解决方案1】:

经过研究,我使用HTTPS 证书和密钥来保护流量。

【讨论】:

    猜你喜欢
    • 2018-08-10
    • 2021-10-19
    • 2012-08-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-03-26
    相关资源
    最近更新 更多