Laravel - 用于定制ajax帖子的CSRF

时间:2014-11-26 03:39:51

标签: laravel csrf

要在laravel中动态提取部分视图,您可以使用ajax。从安全角度来看,您通常会使用laravel提供的令牌来避免csrf攻击。 很多时候,您不需要整个HTML表单,只需使用jquery发布数据,因此您可以将部分视图作为响应进行检索,并将其注入HTML中。

我理解在HTML表单中,你可以为laravel包含一个令牌以避免使用csrf,但如果它是一个没有表单的jquery的ajax请求,并且你在同一页面上有很多元素通过ajax对它们执行不同的操作例如,单个点击事件,当您执行帖子以保护自己免受csrf攻击时,是否需要多个不同的令牌?或者您可以在HTML中创建单个全局行,如:

<div style="display: none;" data-token="{{ csrf_token() }}">

在页面上的certian区域中,当您编写jquery post请求时,可以用于所有非形式的ajax请求。我要问的是,对于非表单元素jquery post请求,你可以使用单个数据令牌属性,还是每个非表单jquery元素都有自己的csrf_token数据属性发送到路由以防止csrf攻击?

1 个答案:

答案 0 :(得分:4)

尝试在javascript中创建一个全局变量,该变量将保存_token的当前值,您可以将此代码添加到您的html标题

<script> var _token = '<?php echo csrf_token(); ?>'; </script>

然后将_token放入每个ajax请求

(假设您使用csrf检查过滤了路线)