我为我网站上的每位访问者生成一个会话值。如果他们提交表单,它会通过jQuery AJAX请求将数据发送到我的PHP验证器脚本。
此脚本对用户提交的数据执行多项检查。如果所有内容都已经过验证,它将返回一个使用函数hash_hmac('sha256', 'success', $_SESSION['secret_key'])
生成的sha256哈希值。我对此进行了哈希,因此用户无法使用Charles等软件来处理响应。
jQuery请求收到哈希字符串,我必须哈希'成功'再次使用密钥检查它们是否匹配。但是,密钥存储在PHP会话中,我无法弄清楚如何通过JavaScript访问它。
对PHP脚本的AJAX请求并不理想 - 然后攻击者可以编辑响应以使其与自己的哈希字符串匹配。
答案 0 :(得分:0)
我将在这个答案中详细说明我的评论。
你说
对PHP脚本的AJAX请求并不理想 - 攻击者可以 然后编辑响应以使其与自己的散列字符串匹配。
他们可以编辑响应,但如果它全部在客户端完成,他们仍然可以编辑它。
你想发送数据哈希,然后你希望客户端能够检查哈希,所以我不确定哈希的重点是什么,除了传输中的安全性。我不能告诉你你真正需要什么,因为我没有看到这里的用例。
我知道你要么需要去服务器寻找你想要对客户保密的东西。客户端没有安全保障。
答案 1 :(得分:0)
只要你在你的php文件中使用javascript,这样的东西就足够了......
<script>
var secret_key = <?php echo json_encode($_SESSION['secret_key']); ?>
<script>