访问JavaScript中的PHP SESSION值


Access PHP SESSION value in JavaScript

我为网站上的每个访问者生成一个会话值。如果他们提交表单,它会通过jQueryAJAX请求将数据发送到我的PHP验证器脚本。

此脚本对用户提交的数据执行多次检查。如果所有内容都已验证,它将返回一个sha256散列,该散列是用函数hash_hmac('sha256', 'success', $_SESSION['secret_key'])生成的。我对此进行了散列处理,这样用户就无法使用Charles之类的软件来操纵响应。

jQuery请求接收散列后的字符串,我必须再次用密钥散列"success"以检查它们是否匹配。然而,密钥存储在PHP会话中,我不知道如何通过JavaScript访问它。

对PHP脚本的AJAX请求并不理想——攻击者可以编辑响应,使其与自己的哈希字符串相匹配。

我将在这个答案中详细阐述我的评论。

你说

对PHP脚本的AJAX请求并不理想——攻击者可以然后编辑响应,使其与自己的散列字符串相匹配。

他们可以编辑响应,但如果全部在客户端完成,他们仍然可以编辑它

你想发送散列后的数据,然后你想让客户端能够检查散列,所以我不确定散列的意义是什么,除了传输中的安全性。我不能告诉你你真正需要什么,因为我在这里没有看到用例。

我知道你要么需要去服务器上获取你想对客户保密的东西。客户端没有安全措施。

只要您在php文件中使用javascript,这样的东西就足够了。。。

<script>  
   var secret_key = <?php echo json_encode($_SESSION['secret_key']); ?>  
<script>