【问题标题】:Meteor server only variables/security keys流星服务器仅变量/安全密钥
【发布时间】:2015-10-08 18:29:03
【问题描述】:

我有一个页面只接受用户的一个输入:passcode

现在我想验证输入的passcode,然后将用户重定向到下一页(假设是订单页面)。为了安全起见,我想知道用户是输入了passcode 并来到了订单页面,还是只是在地址栏中输入了 URL。

例如:

// Client code
Template.Home.events({
  'click #btnGoToOrderForm' : function() {
    var passcode = $('#inptPasscode').val();
    if ( passcode ) {
      Meteor.call('cehckPasscode', passcode, function(error, result) {
        if ( result == true ) {
          Router.go('order');
        }
      });
    }
  }
});


// Server code
Meteor.methods({
  'checkPasscode' : function(passcode) {
    console.log(passcode);
    if ( passcode == 'welcome' ) {
      return true;
    }
    else {
      return false;
    }
  }
});

HTML 代码:

<div class="input-group">
    <input id="inptPasscode" type="password" class="form-control" placeholder="Enter the passcode...">
    <span class="input-group-btn">
        <button id="btnGoToOrderForm" class="btn btn-primary" type="password">Go!</button>
    </span>
</div>

我该怎么做?

【问题讨论】:

    标签: javascript html meteor iron-router


    【解决方案1】:

    您可以将值保存到 Session - 但人们仍然可以修改会话并破坏您的“安全性”。

    我建议在该特定 URL 上使用 HTTP 身份验证。

    https://github.com/Jabbslad/basic-auth

    【讨论】:

      【解决方案2】:

      我建议在客户端/服务器之间传递之前使用类似 bcrypt 库的东西来生成加盐哈希:

      https://atmospherejs.com/meteor/npm-bcrypt

      包的doc完全不见了,但实际上和:https://www.npmjs.com/package/bcrypt一样

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2021-06-10
        • 1970-01-01
        • 1970-01-01
        • 2017-01-29
        • 1970-01-01
        • 1970-01-01
        • 2021-12-31
        • 1970-01-01
        相关资源
        最近更新 更多