标签: csrf-protection

如何在JSF-Spring集成应用中开启CSRF保护

我有一个 JSF-Spring 集成应用程序。此应用程序中还集成了 Spring 安全性。这些是我的应用程序中的版本:

  • JSF 2.2
  • 春季 4.0.3.RELEASE
  • Spring 安全 3.2.4.RELEASE

根据JSF 文档,JSF2.x [甚至旧版本] 中的所有 POST 请求都将受到 CSRF 保护。但是,我能够通过 CSRF 攻击来渗透我的应用程序。

我只尝试了一个不同的 JSF2.2 [没有 Spring] 示例应用程序,在这种情况下,我可以看到这个示例应用程序受 CSRF 保护。

所以我的理解是,JSF/Spring/Spring 安全组合在我的原始应用程序中出现了问题。不幸的是,日志文件中没有帮助信息。

我可以尝试使用Spring Security CSRF 保护。在那种情况下,挑战是我需要在所有 POST 情况下编辑代码。

我希望启用 JSF CSRF 保护以避免此代码更改。有什么建议吗?

我正在用Pinata进行测试。

java jsf spring spring-security csrf-protection

1
推荐指数
1
解决办法
4653
查看次数

每次登录时生成新的django CSRF令牌

我希望我的网站登录表单每次刷新页面时都会生成一个新的CSRF令牌.

我试着打电话

logout(request)
request.session.flush()
Run Code Online (Sandbox Code Playgroud)

但即使在服务器重启后,隐藏的表单字段也始终具有相同的标记.

这显然意味着django正在从cookie中读取数据.如何使它忽略cookie并生成一个新的?

或者,有没有办法让我有一个中间页面,在进入实际登录页面之前清除所有cookie?如何在Javascript中删除我的域的所有cookie?

javascript django csrf django-csrf csrf-protection

1
推荐指数
1
解决办法
1221
查看次数

如何使用 python-requests 库传递 CSRF 令牌?

我有一个应用程序需要使用一些 POST 数据从外部重定向到另一个 url。我有其他应用程序的 CSRF 令牌值。如何使用 Python 中的 requests 库构造一个简单的 POST 请求?

csrf_token = "kjsbfckjsdnfcksdnkl"
post_data = {'email': email, 'answer': answer}
response = request.post(URL, data=post_data)
Run Code Online (Sandbox Code Playgroud)

在哪里添加 CSRF 令牌?

python django csrf-protection

1
推荐指数
1
解决办法
1万
查看次数

令牌/令牌会话拦截器导致 HttpSession 上的空指针

我正在研究 struts2 Web 应用程序,我正在使用令牌拦截器处理 CSRF 漏洞。

我所做的是成功和错误,我会将用户重定向到同一页面,但会出现操作错误或成功消息。

<action name="saveApplicationForm" class="action.ApplicationFormAction" 
      method="saveApplicationForm">
        <interceptor-ref name="token" />
        <result name="invalid.token" type="tiles">applicationForm.tiles</result>    
        <result name="input" type="tiles">applicationForm.tiles</result>
</action>
Run Code Online (Sandbox Code Playgroud)

没有令牌/令牌会话拦截器一切正常,但是当我使用拦截器时,我收到了 NullPointerException。

堆栈跟踪

java.lang.NullPointerException: null
at action.ApplicationFormAction.saveApplicationForm(ApplicationFormAction.java:218) ~[ApplicationFormAction.class:na]
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[na:1.7.0_67]
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) ~[na:1.7.0_67]
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[na:1.7.0_67]
at java.lang.reflect.Method.invoke(Method.java:606) ~[na:1.7.0_67]
at com.opensymphony.xwork2.DefaultActionInvocation.invokeAction(DefaultActionInvocation.java:450) [xwork-core-2.3.16.3.jar:2.3.16.3]
at com.opensymphony.xwork2.DefaultActionInvocation.invokeActionOnly(DefaultActionInvocation.java:289) [xwork-core-2.3.16.3.jar:2.3.16.3]
at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:252) [xwork-core-2.3.16.3.jar:2.3.16.3]
at org.apache.struts2.interceptor.TokenInterceptor.handleValidToken(TokenInterceptor.java:193) [struts2-core-2.3.16.3.jar:2.3.16.3]
at org.apache.struts2.interceptor.TokenInterceptor.handleToken(TokenInterceptor.java:154) [struts2-core-2.3.16.3.jar:2.3.16.3]
at org.apache.struts2.interceptor.TokenInterceptor.doIntercept(TokenInterceptor.java:142) [struts2-core-2.3.16.3.jar:2.3.16.3]
at com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:98) [xwork-core-2.3.16.3.jar:2.3.16.3]
at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:246) [xwork-core-2.3.16.3.jar:2.3.16.3]
at org.apache.struts2.impl.StrutsActionProxy.execute(StrutsActionProxy.java:54) [struts2-core-2.3.16.3.jar:2.3.16.3]
at org.apache.struts2.dispatcher.Dispatcher.serviceAction(Dispatcher.java:562) [struts2-core-2.3.16.3.jar:2.3.16.3]
at org.apache.struts2.dispatcher.ng.ExecuteOperations.executeAction(ExecuteOperations.java:77) [struts2-core-2.3.16.3.jar:2.3.16.3]
at org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter.doFilter(StrutsPrepareAndExecuteFilter.java:99) [struts2-core-2.3.16.3.jar:2.3.16.3] …
Run Code Online (Sandbox Code Playgroud)

java struts2 csrf-protection interceptorstack struts2-interceptors

1
推荐指数
1
解决办法
921
查看次数

需要CSRF令牌吗?

好吧,仍然试图围绕它们是什么,并且需要......相信我我已经阅读了很多并且认为我理解但我可能不......

我能得到的最接近的是,当您的网站上有任何形式的登录页面时,绝对需要它们......

我的问题是,当您出于任何原因拥有基本的联系表格和/或填写表格时……您是否需要这些页面的 CSRF 令牌?

php csrf contact-form csrf-protection

1
推荐指数
1
解决办法
1114
查看次数

如何防止经典asp站点中的csrf攻击?

我有一个用 vb6 和经典 asp(12 年前)开发的应用程序。现在我必须防止跨站点请求伪造(CSRF)。

我怎样才能做到这一点?

asp.net asp-classic csrf-protection

1
推荐指数
1
解决办法
6342
查看次数

Laravel 5.4 csrf_field()无法正常工作

我正在尝试做一个简单的视图,我希望能够发出一个发布请求。我需要生成一个csrf令牌,这是我拥有的html视图:

<form method="POST" action="/formsubmit">
{!! csrf_field() !!}
First Name: <br>
<input type="text" name="firstname"><br>
Last Name:<br>s
<input type="text" name="lastname"><br>
<input type="submit" name="Submit"><br>   
</form>
Run Code Online (Sandbox Code Playgroud)

这是我的路线:

Route::get('form', function(){
return view('form');
});

Route::post('formsubmit',function(){
return 'Form Posted.';
});
Auth::routes();
Run Code Online (Sandbox Code Playgroud)

这是我尝试网址时发生的情况:

在此处输入图片说明

如您所见,它只是打印函数的名称,但从未调用过函数,也不会生成隐藏字段。为了使其正常工作需要做些什么吗?

php csrf-protection laravel-5.4

1
推荐指数
1
解决办法
1589
查看次数

如何防止来自 Chrome 开发者工具的 ajax 调用?

我的 Ajax 调用受“Access-Control-Allow-Origin”保护

但是,仍然可以从 Google Chrome 工具进行一些 ajax 调用。

有没有办法阻止来自 Google Chrome 的 ajax 调用?

(设置CSRF保护的简单方法?)

javascript ajax csrf csrf-protection

0
推荐指数
1
解决办法
2723
查看次数

Django - 登录 - 禁止(CSRF 令牌丢失或不正确。):

Forbidden (CSRF token missing or incorrect.)当我尝试使用登录页面时收到错误。

场景如下:

  1. 用户打开了两个选项卡。
  2. 两个选项卡都是登录页面。
  3. 在选项卡 1 中,用户成功登录,并被重定向到需要登录的新页面。
  4. 在选项卡2中,用户尚未刷新页面,仍处于登录页面。在Django后端,用户已经通过身份验证,但前端模板还没有注意到它。
  5. 在选项卡 2 中,当我单击登录按钮时,出现Forbidden (CSRF token missing or incorrect.)错误。
  6. 我确定这csrf_token是在表格中。
  7. 仅当我使用两个选项卡时才会出现此错误。
  8. 我正在使用 AJAX

为什么会发生这种情况?我该如何修复它?

我不知道这会有帮助,但这是我的views.py登录信息

class Login_View(LoginView):

    template_name = 'login.html'

    def post(self, request, *args, **kwargs):
        username = request.POST['username']
        password = request.POST['password']
        user = authenticate(username=username, password=password)

        response_data = {}
        if user is not None:
            if user.is_active:
                login(request, user)
                response_data['result'] = 'success'
            else:
                return HttpResponse("Inactive user.")
        else:
            response_data['result'] = 'fail'

        return HttpResponse(json.dumps(response_data), content_type="application/json")
Run Code Online (Sandbox Code Playgroud)

django ajax csrf django-csrf csrf-protection

0
推荐指数
1
解决办法
1万
查看次数