繁体   English   中英

Javascript 网站安全 - 全局变量

[英]Javascript website security - global variables

这里的新手。 我正在一个网站上工作,该网站接受一些用户输入,接受输入并将其传递到下一页,这个过程持续了大约 5 页。

我的问题是,因为我正在传递变量,所以我已经声明了一个全局变量,但它可以在控制台中的检查私奔下直接访问。 (例如,我有一个名为“activities”的变量,我意识到我可以在浏览器的检查元素的控制台中输入“activities”,内容就会显示出来,我也可以根据需要编辑它)。

这显然是超级不安全的,只是想知道有什么更好的方法来处理这些。 而且,任何其他一般安全提示都会很棒。 我最终会将数据传递到数据库中。

下面是我在 helper.js 中的代码:

var activities = []

function removeA(arr) {
    var what, a = arguments, L = a.length, ax;
    while (L > 1 && arr.length) {
        what = a[--L];
        while ((ax= arr.indexOf(what)) !== -1) {
            arr.splice(ax, 1);
        }
    }
    return arr;
}

function select_activities(b){
  if (b.classList.contains('active')) {
    $(b).removeClass('active');
    removeA(activities, b.innerHTML);
  }
  else {
    $(b).addClass('active');
    activities.push(b.innerHTML);
  }
}

这是我的 html:

<script src="scripts/helpers.js"></script>

  <div class="form-group">
    <p>What are the activities you're looking for:</p>

    <button class="btn btn-info" type="button" onclick="select_activities(this)">Sports</button>
    <button class="btn btn-info" type="button" onclick="select_activities(this)">Music</button>
</div>

不受信任的客户就是这样 - 不受信任。 它们应仅用于输入和显示。 您不希望他们直接更改的任何内容都应在服务器上完成,或者至少在存储/处理之前在服务器上重新验证。

因此,在您的情况下,我不会担心全局变量的不安全性,但是一旦提交,我会根据服务器上的业务规则对其进行验证。

如果您想保护大部分数据并且无法通过客户端访问它们,则需要查看模板库,例如HandlebarsReact

Handlebars 真的很容易使用,您可以使用Express之类的工具和车把并动态呈现内容。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM