错误: CSRF令牌丢失或不正确。想要传递令牌来提交一个表单,而该表单不是在django-模板上。
views.py
....
def post(self, request):
form = self.form_class(request.POST or None, request.FILES or None)
if form.is_valid():
email = form.cleaned_data.get('email')
user = authenticate(email=email)
if user
我已经创建了一个API,它应该同时适用于移动设备和网络浏览器。例如,/web/toys用于web,/API/toys用于JSON响应。我正在使用JW令牌作为身份验证的手段。
我在HTML中显示表单,在后台,我将jQuery的方法称为POST到我的API。我将access_tokens保存在会话cookie中。为了防止CSRF攻击,我使用的是烧瓶-JWT-扩展。
当我用@jwt_required装饰视图,CSRF设置为True时,我得到missing JWT in headers and cookies,即使在设置和传输cookie时也是如此。我检查了源代码,发现在请求头中设置X-CSRF-TO
我的jQuery函数看起来像
$("body").on("submit","form",function(e){
// do not submit the form
e.preventDefault();
// handle everything yourself
var $form = $(this);
var title = $form.closest('.video-detail').find('.title').text();
我正在使用CodeIgniter3在Jquery Ajax中将一些数据插入数据库。
但是,当用户插入如下内容时,我使用csrf_token来生成安全表单数据。
发布--我无法在Chrome浏览器上将数据插入数据库,但它在火狐中工作。
错误 403紫禁城和
<div id="container">
<h1>An Error Was Encountered</h1>
<p>The action you have requested is not allowed.</p> </di
烧瓶-WTForms提供CSRF保护。它在使用普通HTML表单时效果很好,但是当使用AJAX时,这个过程就不那么清晰了。我的表单中有一个文件上传,我用AJAX将这个过程分成两个部分:文件转到upload端点,而其余部分则到submit端点。由于文件是用AJAX发布的,所以它不会得到CSRF令牌,但我希望保护upload端点不受攻击。如何在使用AJAX时生成CSRF令牌?
@app.route('/submit', methods=["GET","POST"])
@login_required
def submit():
form = My
我对这个被禁止的问题感到很困惑。首先,我查看了相关的堆栈溢出帖子,并搜索了足够多的内容,但仍然不知道。
项目详细信息:
- Currently used libraries:
1. Carabiner (https://github.com/bcit-ci/CodeIgniter/wiki)
2. Template (https://github.com/jenssegers/codeigniter-template-library)
3. hmvc
3. instagram_api
- CSRF Protection turned on (I don
在中,对于基于ajax的应用程序,可以通过HTML meta tag和cheking请求提供CSRF保护。
为什么需要这种方法,为什么不像往常一样检查ajax请求?我的意思是,如果ajax使用POST方法,那么发送CSRF令牌作为通常的参数(例如csrf_token),然后在服务器端签入(PHP):
if ( !isset($_POST['csrf_token']) OR $_POST['csrf_token'] !== $_SESSION['csrf_token'] ) {
// incorrect csrf token, stop p
我正在用laravel 5.5中的任何一条路线:
Route::any('/', 'HomeController@index')->name('homepage');
路线应该是一个GET,但由于第三供应商重定向与一个帖子,我不得不改变它的任何;
问题是,当从第三方(使用post)重定向时,我得到:
The page has expired due to inactivity.
Please refresh and try again.
这是因为{{ csrf_field() }}
即使我收到了POST请求,我如何通过csrf_fiel