Warm tip: This article is reproduced from serverfault.com, please click

html-Javascript网站安全

(html - Javascript website security)

发布于 2020-11-28 02:33:41

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

我的问题是,由于我要传递变量,因此已经声明了一个全局变量,但可以在控制台中的“检查私隐”下直接访问它。(例如,我有一个名为“ activities”的变量,我意识到可以在浏览器的inspect元素上的控制台中键入“ 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>
Questioner
user3157674
Viewed
0
Scott McNeany 2020-11-28 21:52:57

不信任的客户就是-不信任。它们应仅用于输入和显示。你不希望它们直接更改的所有操作都应在服务器上完成,或者至少在存储/处理之前在服务器上重新验证。

因此,就你而言,我不必担心全局变量的不安全性,但是一旦提交,我将根据服务器上的业务规则对其进行验证。