标签: csrf-protection

如何配置 NGINX 以允许对 Spring Boot 应用程序进行 CSRF 保护

我试图通过使用 NGINX 反向代理将我的 Spring Boot 应用程序与我的前端(即我的 Angular 7+ 应用程序)分开。我的 Spring Boot 应用程序的版本是 2.0.3+.RELEASE 并且启用了 CSRF 保护。

我的安全配置如下所示:

    @Override
    protected void configure(HttpSecurity http) throws Exception {
        http
                .httpBasic().and()
                .authorizeRequests()
                .antMatchers("/").permitAll()
                .anyRequest().authenticated()
                .and().csrf()   
        .csrfTokenRepository(CookieCsrfTokenRepository.withHttpOnlyFalse());
    }
Run Code Online (Sandbox Code Playgroud)

我的 nginx.conf 如下所示:

events {
  worker_connections 768;
}

http {
  # Nginx will handle gzip compression of responses from the app server
  gzip on;
  gzip_proxied any;
  gzip_types text/plain application/json;
  gzip_min_length 1000;

  server {
    listen 80;

    # Nginx will reject anything not matching /api
    location /api {
      # …
Run Code Online (Sandbox Code Playgroud)

nginx csrf csrf-protection spring-boot

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

模拟CSRF攻击

我想模拟CSRF Attack来检查我的网站漏洞.我在我的asp.net webapplication上试了但是没能模拟.所以请帮我模拟CSRF攻击.我有一个test.aspx模拟.

  <form name="form1" id="form1" runat="server" method="post" action="mysite.com">
 <script type="text/javascript">
        document.cookie[".ASPXAUTH"] = "someaspxauth";
        document.cookie["ASP.NET_SessionId"] = "somesessionid";
        document.form1.submit();
    </script>
</form>
Run Code Online (Sandbox Code Playgroud)

我还缺少什么?提前致谢.

asp.net csrf simulate csrf-protection

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

CodeIgniter 2,Ion Auth在配置文件编辑时给出CSRF错误消息

我一直在使用CodeIgniter版本2.1.4与Ion Auth相当一段时间,一切都很好.昨天,我将Ion Auth更新到最新版本,现在每当我尝试"编辑"任何用户配置文件时,我都会收到CSRF错误.

"此表格帖子未通过我们的安全检查."

修改controllers/auth.php文件后出现此错误,以便将各种Ion Auth视图加载到我自己的模板中.毕竟,如果我无法将其集成到我的网站设计中,这有什么用处. 但是,即使auth.php控制器根本没有修改,我也会在较旧版本的Safari中出现此错误.

这是我对auth.php控制器文件的简单修改.

替换这一行:

$view_html = $this->load->view($view, $this->viewdata, $render);
Run Code Online (Sandbox Code Playgroud)

有了这条线:

$view_html = $this->template->load('default', $view, $this->viewdata, $render);
Run Code Online (Sandbox Code Playgroud)

是的,我的load功能(位于Template.php文件中/libraries/)从一开始就很好(几个月前).即使使用新版本的Ion Auth,我的模板加载功能也正常工作......但是,我只是不断收到安全错误,如上所述.


在做了一些研究之后,错误的原因是Ion Auth的CSRF安全例程.这两个函数在整个auth.php控制器中调用,并在_valid_csrf_nonce()函数返回时显示上面的错误false.

function _get_csrf_nonce()
{
    $this->load->helper('string');
    $key   = random_string('alnum', 8);
    $value = random_string('alnum', 20);
    $this->session->set_flashdata('csrfkey', $key);
    $this->session->set_flashdata('csrfvalue', $value);

    return array($key => $value);
}

function _valid_csrf_nonce()
{
    if ($this->input->post($this->session->flashdata('csrfkey')) !== FALSE &&
        $this->input->post($this->session->flashdata('csrfkey')) == $this->session->flashdata('csrfvalue'))
    {
        return …
Run Code Online (Sandbox Code Playgroud)

php codeigniter csrf csrf-protection ion-auth

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

Tomcat 7和CSRF过滤器

我正在尝试将CS​​RF保护添加到java Web应用程序中.我有web.xml配置了CSRF过滤器和过滤器到servlet的映射.但是,我不知道下一部分该怎么做.文档说,返回给客户端的所有URL都是通过调用HttpServletResponse #creditRedirectURL(String)或HttpServletResponse #creditURL(String)来编码的.他们还说你可以尝试:或者可以将nonce作为带有名称org的请求参数传回. apache.catalina.filters.CSRF_NONCE,它是常量org.apache.catalina.filters.Constants.CSRF_NONCE_REQUEST_PARAM的值.

更新 我仍然被禁止获得403.有人有什么建议吗?这是web.xml设置:

<filter>
    <filter-name>CSRF</filter-name>
    <filter-class>org.apache.catalina.filters.CsrfPreventionFilter</filter-class>
    <init-param>
      <param-name>entryPoints</param-name>
      <param-value>/html,/html/</param-value>
    </init-param>
  </filter>

  <filter-mapping>
    <filter-name>CSRF</filter-name>
    <servlet-name>exampleservlet</servlet-name>
  </filter-mapping>
Run Code Online (Sandbox Code Playgroud)

这是JSP页面代码

<FORM METHOD="POST"  ACTION="<%=response.encodeURL("/exampleservlet")%>">
        <INPUT TYPE="HIDDEN" NAME="org.apache.catalina.filters.CSRF_NONCE" VALUE="<%=session.getAttribute("org.apache.catalina.filters.CSRF_NONCE")%>">
        <INPUT TYPE="HIDDEN" NAME="id" VALUE="0">
Run Code Online (Sandbox Code Playgroud)

我究竟做错了什么?

tomcat csrf csrf-protection tomcat7

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

ForbiddenError:无效的csrf令牌,表达js

我试图让csurf工作,但似乎偶然发现了什么.到目前为止,代码如下所示:

index.ejs

<form method="post" action="/">
            <input type="hidden" name="_csrf" value="{{csrfToken}}">
            .
            .
</form>
Run Code Online (Sandbox Code Playgroud)

您在表单中插入密码和用户名的位置.

app.js

   var express = require('express');
var helmet = require('helmet');
var csrf = require('csurf');
var path = require('path');
var favicon = require('serve-favicon');
var flash = require('connect-flash');
var logger = require('morgan');
var cookieParser = require('cookie-parser');
var bodyParser = require('body-parser');
var session = require('express-session');


var routes = require('./routes/index');
var users = require('./routes/users');
var profile = require('./routes/profile');

var app = express();


// view engine setup
app.set('views', path.join(__dirname, 'views'));
app.set('view engine', 'ejs'); …
Run Code Online (Sandbox Code Playgroud)

javascript csrf node.js csrf-protection express

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

laravel 5 csrf_token值为空

为什么laravel 5 csrf_token值始终为空?

我如何获得代币价值?

我试过了,

  {!! csrf_token !!} , {{ csrf_token }} and 
  {{ Form::open() }} ....{{ Form::close() }}
Run Code Online (Sandbox Code Playgroud)

我的输出

  <input type="hidden" name="_token"></input>
Run Code Online (Sandbox Code Playgroud)

php csrf-protection laravel laravel-5.2

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

Rails 5.0.0beta3:ActionController :: InvalidAuthenticityToken正在开发中

我刚刚在Rails 5.0.0beta3上创建了一个带有几个表单的简单应用程序.

在开发中,使用Safari或Chrome上的http:// localhost:3000来访问应用程序,如果我填写表单并提交它,我总是会收到ActionController::InvalidAuthenticityToken错误.但是,如果我在填写并提交之前重新加载页面,那么它可以正常工作.

该应用使用默认值:

  • protect_from_forgery with: :exception 在ApplicationController中,
  • <%= csrf_meta_tags %> 在html标题中通过应用程序布局,
  • 由rails创建的开发环境.

例:

<%= form_for @node, url: admin_book_nodes_url, as: :node do |form| %>
  <%= render "form", f: form %>
  <p><%= form.submit %> or <%= link_to "Cancel", admin_book_nodes_path %></p>
<% end %>
Run Code Online (Sandbox Code Playgroud)

日志:

Started POST "/admin/book/nodes" for ::1 at 2016-03-20 11:54:31 +0000
Processing by Admin::Book::NodesController#create as HTML
  Parameters: {"utf8"=>"?", "authenticity_token"=>"/G5pF6hSPx0Vf21Fi0FCh+VlOcHY4w8C5lmHmwr3NQRjfXUP9/xboybeV3tevmyTyHcwSX8LplU/HgZVGDbGlw==", "node"=>{"parent_id"=>"1", "position"=>"1", "title"=>"lkjlkj", "description"=>"lkjlj", "published"=>"0", "content"=>"lkjlkj"}, "commit"=>"Create node"}
Can't verify CSRF token authenticity
Completed 422 …
Run Code Online (Sandbox Code Playgroud)

ruby-on-rails actioncontroller csrf-protection ruby-on-rails-5

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

Laravel 5.4:从CSRF验证中排除包含参数的路由

根据Laravel 5.4 Docs,您可以通过将路由添加到中间件的$except属性来将其从CSRF验证中排除VerifyCsrfToken。但是由于某种原因,除非包含在主路径本身中,否则无法使用确切的路径名称排除带有参数的路径。

排除的预期路线:

protected $except = [
    'main/{id}/sub/*'
];
Run Code Online (Sandbox Code Playgroud)

仅适用于:

protected $except = [
    'main/*'
];
Run Code Online (Sandbox Code Playgroud)

如何从CSRF验证中排除带有参数的路由?

php csrf-protection laravel laravel-5.4

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

仅针对单个方法删除CSRF令牌-Laravel

我正在使用paytabs付款网关api。在该api中,必须提供重定向网址,以便在交易完成后,页面将自动重定向到您指定的重定向网址。该网址是一个GET网址,但是由于api的响应是POST类型,因此我无法使用get网址。为了解决该问题,我将该路由设置为POST URL,但是通过将其设置为post方法,则没有获得任何CSRF令牌。最后,我得到了这个问题。

TokenMismatchException in VerifyCsrfToken.php line 68:
Run Code Online (Sandbox Code Playgroud)

有什么方法可以让我仅针对单个POST URL否定CSRF令牌功能?

-建议试用- 根据您的建议,我这样做了

class VerifyCsrfToken extends Middleware
{
    protected $except = [
        'signup/complete',
    ];
}
Run Code Online (Sandbox Code Playgroud)

现在越来越

Class 'Middleware' not found
Run Code Online (Sandbox Code Playgroud)

csrf-protection laravel laravel-routing laravel-5

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

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