是否可以使用js生成csrf token并使用php验证?
Is it possible to generate a csrf token using js and validate it using php?
在 php 项目中,我生成了一个 csrf
令牌,将其输入到 session
中,然后将其与 $_POST['token']
请求进行比较。现在我需要这个功能 github.pages。我发现了如何使用 JS 来做同样的事情。但是我现在应该如何比较 php 配置中的这个参数?
<form class="" action="https://somewhere.com/form/form.php" method="POST" id="contact_form">
<input type="text" name="name" value="">
<input type="email" name="email" value="">
<input type="hidden" name="token" value="">
<a id="submitBtn" href="#"></a>
</form>
if($_POST['token']==?????){
//code
}
纯 JS 中是否有 bin2hex(random_bytes(32))
函数的 php 模拟?
虽然这在技术上可能是可行的,但它并不安全,因为 csrf 令牌的意义在于您可以证明表单是由请求它的同一客户提交的。因此服务器为客户端提供一个秘密值,该值也加密存储在会话中。如果客户端发送了正确的值,则证明他们也请求了该页面。如果客户端(带 JavaScript)生成令牌,它不能证明任何东西。
在 php 项目中,我生成了一个 csrf
令牌,将其输入到 session
中,然后将其与 $_POST['token']
请求进行比较。现在我需要这个功能 github.pages。我发现了如何使用 JS 来做同样的事情。但是我现在应该如何比较 php 配置中的这个参数?
<form class="" action="https://somewhere.com/form/form.php" method="POST" id="contact_form">
<input type="text" name="name" value="">
<input type="email" name="email" value="">
<input type="hidden" name="token" value="">
<a id="submitBtn" href="#"></a>
</form>
if($_POST['token']==?????){
//code
}
纯 JS 中是否有 bin2hex(random_bytes(32))
函数的 php 模拟?
虽然这在技术上可能是可行的,但它并不安全,因为 csrf 令牌的意义在于您可以证明表单是由请求它的同一客户提交的。因此服务器为客户端提供一个秘密值,该值也加密存储在会话中。如果客户端发送了正确的值,则证明他们也请求了该页面。如果客户端(带 JavaScript)生成令牌,它不能证明任何东西。