我们假设你有一个带有这样的变量的javascript:
<script type="text/javascript" >
...some javascript...
var secret = 123;
...some javascript...
</script>
假设您能够在服务器端编写此javascript。是否可以使用正则表达式或Xpath来阻止它被抓取?
我已经将服务器端的变量名称更改为随机变量名称。
这里的目标不是打败人类花时间消化我的代码并在客户端进行修改(我知道我不能阻止这一点)。更糟糕的是,自动化脚本难以/不可能获取变量。如果有足够的时间,人类在处理代码方面比机器更好。
答案 0 :(得分:0)
简短的回答是否定的。
稍微长一点的答案是变量的值将始终以明文形式传输到浏览器,因此可以始终从JavaScript中删除,因为它将以可预测的方式声明(或使用)
作为创作者,你唯一可以控制的是让编程提取变得困难。这可能是通过以随机方式在每个页面加载上更改值/机密的位置和形式,使任何标记仅用于单一用途,以及通过加密/编码*事物。
这不会阻止访问该秘密,只是让它不那么容易,并且取决于用户拥有的访问级别到浏览器。一旦你接受了这一点,就可以归结为成本/效益分析,你需要花费多少努力来比较好处。
*如果以某种方式对值进行编码,则JavaScript中将存在解码函数,使编码变量能够传递到解码函数中。或者也许可以替换任何功能。有关进一步阅读,请参阅JavaScript中加密/解密的极少尝试。