Javascript存储变量

Javascript存储变量,javascript,variables,Javascript,Variables,我想将一些变量存储到客户端,目前,我几乎没有选择(javascript变量、cookie、会话),因为我想减少服务器的工作负载,所以传入的参数不会在服务器端进行检查 比如说, 客户端 <div id="showmoney"></div> <script> var money=10000; $('#showmoney').html(money); function changemoney() { { pass the variable 'money' b

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

比如说,

客户端

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

<script>
var money=10000;

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

function changemoney()
{

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

}
</script>

var货币=10000;
$('#showmoney').html(money);
函数changemoney()
{
{通过ajax将变量'money'传递给php…}
}
PHP端

<?

$money = $_POST['money'];

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

?>

有什么方法可以使它更安全,因为我担心有人可以通过工具修改javascript变量(firebug?如果有,如何修改?)


非常感谢~:)

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

有什么方法可以使它更安全,因为我担心有人可以通过工具修改javascript变量(firebug?如果有,如何修改?)

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


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

您必须将在客户端上存储某些内容以提高性能的愿望与安全性的需要结合起来。敏感信息应仅在服务器上。任何精明的web用户都可以调整javascript。通过在客户端上放置其他不太敏感的信息来节省带宽。

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

您是否知道客户端数据库存储—HTML5中全新的API。试图找到解决办法。在客户端保存一些数据可能会对您有所帮助。

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

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

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

正如其他人所说,永远不要相信人们从客户机传递到服务器的任何东西。服务器需要进行健全性检查。

你是对的,但如果你想这样做,javascript加密是一个选项。我不认为是这样。加密库和加密密钥都可以在客户端上使用,任何人都可以编码和提交不同的值,尽管他们可能无法解密。另外,请理解,如果你真的在处理金钱,你需要更好地掌握安全性。您的代码显示了至少两个问题(问题涉及的问题和SQL注入)。例如,根据您居住的国家和您造成的损害,如果您没有采取合理的安全措施,您可能会被视为负有刑事责任。谢谢Andrea和所有人,我从您那里学到了很多,在搜索过程中,我发现了一个非常有用的页面,我不必担心我的问题,因为我认为这是一种错误的方式:)谢谢Pekka,我刚刚从你那里发现了什么是SQL注入,非常感谢~谢谢Ian Moss,但我目前不会使用HTML5,也许在大多数用户(使用用户的浏览器)准备好之后:)