NexusForce 1.0.0
A rigorously engineered full-stack C++ backend library.
载入中...
搜索中...
未找到
neforce::http::csrf_filter类 参考final

CSRF防护过滤器 更多...

#include <csrf_filter.hpp>

类 neforce::http::csrf_filter 继承关系图:
[图例]

Public 成员函数

bool pre_filter (http_request &request, http_response &response) override
 预处理方法
void do_filter (http_request &, http_response &) override
 核心过滤方法
string name () const override
 获取过滤器名称
Public 成员函数 继承自 neforce::http::http_filter
virtual void post_filter (http_request &request, http_response &response)
 后处理方法

Public 属性

string cookie_name {"XSRF-TOKEN"}
 CSRF Cookie名称
string header_name {"X-CSRF-Token"}
 CSRF Header名称
string form_field_name {"_csrf"}
 CSRF表单字段名
seconds token_max_age {3600}
 Token有效期
bool enabled {true}
 是否启用

详细描述

CSRF防护过滤器

Double-Submit Cookie模式:

  1. 首次请求时生成随机CSRF token,存入session + Set-Cookie
  2. 后续状态变更请求需在header(X-CSRF-Token)或body(_csrf)中携带token
  3. 比对cookie中的token与请求中的token,不匹配则拒绝(403)

仅验证状态变更方法:POST、PUT、PATCH、DELETE

在文件 csrf_filter.hpp31 行定义.

成员函数说明

◆ do_filter()

void neforce::http::csrf_filter::do_filter ( http_request & request,
http_response & response )
inlineoverridevirtual

核心过滤方法

参数
requestHTTP请求
responseHTTP响应

执行实际的过滤逻辑。通常由具体处理器实现, 中间件过滤器可能不实现此方法。

实现了 neforce::http::http_filter.

在文件 csrf_filter.hpp42 行定义.

◆ name()

string neforce::http::csrf_filter::name ( ) const
inlinenodiscardoverridevirtual

获取过滤器名称

返回
过滤器名称

重载 neforce::http::http_filter .

在文件 csrf_filter.hpp44 行定义.

◆ pre_filter()

bool neforce::http::csrf_filter::pre_filter ( http_request & request,
http_response & response )
overridevirtual

预处理方法

参数
requestHTTP请求
responseHTTP响应
返回
返回false表示中断后续处理

在请求处理前调用,可以检查请求、修改请求或提前返回响应。

重载 neforce::http::http_filter .


该类的文档由以下文件生成: