javascript - 是否可以使用 js 生成 csrf token 并使用 php 验证它?

标签 javascript php csrf

在php项目中,我生成了一个csrf token ,将其输入 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
}
是否有 bin2hex(random_bytes(32)) 的 php 类似物?纯JS的功能?

最佳答案

虽然这在技术上是可行的,但它并不安全,因为 csrf token 的意义在于您可以证明表单是由请求它的同一客户提交的。因此,服务器为客户端提供了一个 secret 值,该值也在 session 中加密存储。如果客户端发送了正确的值,则证明他们也请求了该页面。如果客户端(使用 JavaScript)生成 token ,则无法证明任何内容。

关于javascript - 是否可以使用 js 生成 csrf token 并使用 php 验证它?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66513113/

相关文章:

javascript - 下拉菜单点击关闭

javascript - 使用 setTimeout 延迟居中弹出 Javascript

php - 如何将 PHP 数组参数传递给 Javascript 函数?

php - 发布到 Facebook(粉丝)页面墙

javascript - Angular,HTTP Get 有效,Post 收到 CORS 错误

javascript - 如何允许我的 Asp.net MVC 3 Web 应用程序使用 MathJax 接受用户输入 $x<y>z$?

javascript - csurf Node : csrf token used many times with no error

javascript - 添加 'active' 类当前菜单项 w/JQuery

php - 通过插件管理器的惰性服务

javascript - 更新渲染元素(不可变)