如何保护阵列?

时间:2016-01-16 16:17:52

标签: javascript jquery laravel

我的网站有问题。我必须使用this和laravel制作网站。 所以,使用这个jQuery插件,我必须将“价格”设置为数组。 现在,我的问题,我该如何保护这个价格? 我想通过开发者控制台进行“反编辑”,怎么样? 也许我可以“跳过”javascript代码? 提前谢谢。

2 个答案:

答案 0 :(得分:2)

您可以使用Object.freeze完全锁定对象

var arr = [1, 2, 3]; // [1, 2, 3]

Object.freeze(arr);
// can't modify
arr[1] = 100;
// can't delete
delete arr[1];
// can't add
arr[3] = 4;
// arr.push(5); // will `throw` a TypeError
// same as at freeze time
arr; // [1, 2, 3]

冻结不会向下流动嵌套对象,如果您希望任何子项被冻结,您也需要迭代对象的属性。

请注意

  1. 冻结后,您无法解冻对象
  2. 您绝不应假设来自客户端的任何数据未被篡改。始终验证服务器端。

答案 1 :(得分:0)

为了真正阻止某人更改价格,您需要在后端添加验证(在您的情况下为PHP)。您可以使用Javascript在前端添加验证,但恶意用户可以轻松修改Javascript以避免验证。

基本上,那么,你在PHP中需要的是:

if(<price sent from the client> !== <price I expect>)
    <disallow action>