Javascript存储变量

时间:2011-02-24 14:58:01

标签: javascript variables

我想将一些变量存储到客户端,目前,我几乎没有选择(javascript变量,cookie,会话),因为我想减少服务器的工作量,所以传入的参数不会检查服务器侧。

例如,

客户端

<div id="showmoney"></div>

<script>
var money=10000;

$('#showmoney').html(money);

function changemoney()
{

{ pass the variable 'money' by ajax to php...}

}
</script>

PHP方

<?

$money = $_POST['money'];

$sql = "UPDATE user_details SET money = ".$money." WHERE uid = 123";
{ do query...}

?>

有没有任何方法可以让它更安全,因为我害怕有人可以通过工具修改javascript变量(firebug?如果有,怎么做?)

非常感谢〜:)

6 个答案:

答案 0 :(得分:2)

您不希望用户更改的每个变量(例如价格标签)都要存储在服务器上而不是客户端上。有很多方法可以更改客户端发送给您的内容,而FireBug只是最简单的工具。更复杂的工具将允许拦截和编辑每个HTTP请求..

答案 1 :(得分:2)

  

有没有任何方法可以让它更安全,因为我害怕有人可以通过工具修改javascript变量(firebug?如果有,怎么做?)

您永远不会信任来自客户端的传入数据。它总是可以被操纵。基本检查,例如您需要在服务器端执行的价格 - 客户端检查仅仅是为了方便用户。

此外,您显示的代码有一个SQL injection漏洞,您应该对其进行整理。

答案 2 :(得分:2)

您可以操纵存储在客户端(浏览器)中的任何内容。您的问题的解决方法是验证发送回服务器的信息是否未被篡改。

答案 3 :(得分:2)

人们可以对他们想要的页面做任何事情。

在Google Chrome调试器中(使用Ctrl + Shif + J访问),他们可以在控制台中执行以下操作:

money = 10000000000000; //Or whatever arbitrary value they choose
changemoney();

正如其他人所说,永远不要相信人们从客户端传入服务器的任何事情。服务器需要进行健全性检查。

答案 4 :(得分:1)

您必须根据安全需求调整您在客户端存储内容的愿望。敏感信息应仅在服务器上。任何精明的网络用户都可以调整javascript。通过在客户端上放置其他不太敏感的信息来节省带宽。

答案 5 :(得分:1)

您是否了解客户端数据库存储HTML5中的全新API。试图用它们找到溶剂。也许有助于您在客户端保存一些数据。