Javascript+;我的答案是什么?

Javascript+;我的答案是什么?,javascript,base64,Javascript,Base64,背景: 我有一个(.php)表单 简单的HTML和Javascript验证…等等 在几个领域。。。我有一个onChange和onKeyUp函数来调用.js函数: onKeyUp="dothemath()" onChange="dothemath()" 要求对该表格进行更新,以允许应用“折扣代码” 我面临的问题是: 如果我将此折扣变量作为.js变量添加到表单中 任何人都可以在源代码中看到它。。(从而获得折扣) 如果我只在服务器端(.php)执行此检查/验证。。以前的表单状态不会更新并显示用户需

背景:

我有一个(.php)表单

简单的HTML和Javascript验证…等等

在几个领域。。。我有一个onChange和onKeyUp函数来调用.js函数:

onKeyUp="dothemath()" 
onChange="dothemath()"
要求对该表格进行更新,以允许应用“折扣代码”

我面临的问题是:

如果我将此折扣变量作为.js变量添加到表单中

任何人都可以在源代码中看到它。。(从而获得折扣)

如果我只在服务器端(.php)执行此检查/验证。。以前的表单状态不会更新并显示用户需要支付的正确金额

经过一番搜寻。。我把64进制编码作为可能的解决方案

我对它有了“基本的了解”。。您有一个变量/文本/字符串(无论什么)。。传递给base 64编码函数的。。它会给你一个编码的结果。。反之亦然,则返回原始字符串/数据

我的脱节在如何实现这一点上起了作用。。在源代码中仍然保持“保护”(因为没有更好的词)的同时

我想我不清楚这一切是怎么运作的

此“Base 64 Encoding”函数/代码是否应存在于外部文件中?还是类似的?那么,我将如何在表单中来回传递数据

也许我找错人了?这里是否有更好的/替代解决方案?我真的不想在这里有太多的工作。。这是一个领域。。还有一个折扣码


但也希望尽可能安全/干净。

Base64是一种编码而不是加密。即使您对折扣进行了编码,任何人都可以对其进行解码。您必须进行服务器端身份验证并使用AJAX更新表单。如果您希望隐藏此折扣代码,您应该找到一种方法,不将其放入浏览器中运行的javascript源代码中。Base64编码不是隐藏敏感信息的方法。通过设计,该算法很容易可逆。您应该在服务器上进行优惠券检查。您可以使用AJAX使表单在输入代码后快速显示新价格。上面的评论是正确的,但我打赌base64将阻止99%的访问者通过view source窃取优惠券代码;大多数现实世界的用户甚至不知道什么是JavaScript,更不用说base64了……ajax可以在提交()表单之前更新表单值……base64是一种编码而不是加密。即使您对折扣进行了编码,任何人都可以对其进行解码。您必须进行服务器端身份验证并使用AJAX更新表单。如果您希望隐藏此折扣代码,您应该找到一种方法,不将其放入浏览器中运行的javascript源代码中。Base64编码不是隐藏敏感信息的方法。通过设计,该算法很容易可逆。您应该在服务器上进行优惠券检查。您可以使用AJAX使表单在输入代码后快速显示新价格。上面的评论是正确的,但我打赌base64将阻止99%的访问者通过view source窃取优惠券代码;大多数现实世界的用户甚至不知道什么是JavaScript,更不用说base64了……ajax可以在提交()表单之前更新表单值。。。