我有以下代码:
<?php
$secret_data = "data noone can know";
?>
bla bla bla alot of html
<script type="text/javascript">
function("bla bla", {
data: '<?=$secret_data?>'
}
);
</script>
当人们在他们的网络浏览器中查看源时,他们将知道数据。我怎样才能在我的JavaScript中使用它,但仍保持安全?
我能以某种方式将JavaScript放在PHP中吗?
答案 0 :(得分:1)
您目前正在做什么,但最终用户将能够看到“秘密数据”。用户可以看到任何客户端。如果您需要将一些数据传递给您不希望用户看到的脚本,则可以将其存储在会话中。
<?php
session_start();
$_SESSION['secret_data'] = 'data noone can know';
?>
答案 1 :(得分:1)
使用Javascript等客户端技术时,无法隐藏源代码并保密。它的基本原则之一。它运行在客户端。
取自site:
JavaScript就是所谓的客户端脚本语言。那 意味着它是一种在一个内部运行的计算机编程语言 Internet浏览器(浏览器也称为Web客户端,因为它 连接到Web服务器以下载页面。)
不幸的是,你的陈述没有意义:
我需要使用javascript来使用秘密数据,而不是让它 最终用户看到它是什么
为了保密代码/信息,必须在服务器上实现/存储。
我鼓励您进一步了解Javascript的实际工作原理。这是描绘典型架构的图像:
答案 2 :(得分:1)
当另一个用户需要查看用户内容时,它将在javascipt中使用。但如果其他人知道此ID,则该用户可以编辑该ID。因此需要隐藏
你的问题是:
您只希望创建内容的用户能够对其进行编辑,但任何知道该ID的人都可以对其进行编辑。
由于您的系统目前存在,您无法在不使内容无法查看或编辑的情况下保密ID,如果不能查看和编辑内容,则无法提供内容。
因此,试图保持身份秘密不是解决方案。
您需要为系统添加额外的检查层。由于任何知道id的人都可以查看内容,因此您可以保留查看部分。
由于只允许创建内容的用户对其进行编辑,因此需要额外的保护。当请求进入编辑内容时,您必须验证请求来自已知用户(即用户已登录),并且您必须确保它们已经授权编辑内容(即登录用户的用户名与创建内容的用户的用户名相同,或者他们是管理员或具有其他合适的权限)。
该auth / authz层可以在服务器上完成。