[英]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>
不受信任的客户就是这样 - 不受信任。 它们应仅用于输入和显示。 您不希望他们直接更改的任何内容都应在服务器上完成,或者至少在存储/处理之前在服务器上重新验证。
因此,在您的情况下,我不会担心全局变量的不安全性,但是一旦提交,我会根据服务器上的业务规则对其进行验证。
如果您想保护大部分数据并且无法通过客户端访问它们,则需要查看模板库,例如Handlebars或React 。
Handlebars 真的很容易使用,您可以使用Express之类的工具和车把并动态呈现内容。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.