如何通过 php 设置全局 javascript 变量以使值不公开?
我有 api 键,我不想公开显示,但我仍然想将它们分配为全局 javascript 变量,以便我可以在脚本中访问它们。 api 密钥存储在数据库中并可通过 php 获取。
假设我有 php 变量 $key
我想将其分配给全局 javascipt 变量。我所做的不是在 head 标签中使用这行代码。
window.key = ;
但是这样 api 键在 head 标签中就完全开放了。我想你明白了。谢谢!
仅供参考:我正在 wordpress 工作。所以,如果有任何 WordPress 特定的解决方案,我们非常欢迎!
I have api keys which i don't want to show in public but still i want to assign these as global javascript variable so i can access these in scripts. The api key are stored in database and available via php.
Suppose i have the php variable $key
which i want to assign to a global javascipt variable. Not what i do is in the head tag use this line of code.
window.key = <?php echo $key; ?>;
But that way the api keys are wide open in the head tag. I think you get the idea. Thanks!
FYI: I am working in wordpress. So, if there is any wordpress specific solution you are most welcome!
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
这是不可能的,因为 JavaScript 是客户端的,因此始终是公开的。
It's not possible, since JavaScript is client-side and therefore always public.
尝试通过ajax请求密钥。
但它在运行时仍然可见。使用 firebug 的人可以检查请求的答案,也可以通过 firebug 控制台中的 console.log 显示变量。
javascript 变量对于客户端始终可见。
try to request the key via ajax.
but it will still be visible at runtime. a person using firebug could check the answer of the request and can also display the variable via console.log in the firebug-console.
a javascript variable is always visible for the client.
所有 javascript 都是可见的。您没有告诉我们为什么需要 api key,所以我建议以下解决方案:
您可以为客户端设置临时 api key
如果客户端想要要通过 api 密钥下载文件,您可以使用用 php 编写的代理,因此当客户端下载页面 http://yoursite/proxy/< /a> 隐藏下载http://somesite/api/api-key/ 并返回给客户
All javascripts are visible. You dont tell us why you need api key, so i propose following solutions:
You can set a temporary api key for the client
If a client wants to download a file via api key you can use proxy, written in php, so when client download page http://yoursite/proxy/ its hiddenly download http://somesite/api/api-key/ and returning for client