Rack::Protection
用法
使用您可能想要使用的所有保护措施
# config.ru
require 'rack/protection'
use Rack::Protection
run MyApp
跳过单个保护中间件
# config.ru
require 'rack/protection'
use Rack::Protection, :except => :path_traversal
run MyApp
使用单个保护中间件
# config.ru
require 'rack/protection'
use Rack::Protection::AuthenticityToken
run MyApp
防止的攻击
跨站点请求伪造
防止方法
-
Rack::Protection::AuthenticityToken(未包含在use Rack::Protection中) -
Rack::Protection::FormToken(未包含在use Rack::Protection中) Rack::Protection::JsonCsrf-
Rack::Protection::RemoteReferrer(未包含在use Rack::Protection中) Rack::Protection::RemoteTokenRack::Protection::HttpOrigin
跨站点脚本
防止方法
-
Rack::Protection::EscapedParams(未包含在use Rack::Protection中) -
Rack::Protection::XSSHeader(仅限 Internet Explorer 和 Chrome) Rack::Protection::ContentSecurityPolicy
点击劫持
防止方法
目录遍历
防止方法
会话劫持
防止方法
-
Rack::Protection::SessionHijacking(未包含在use Rack::Protection中)
Cookie 丢弃
防止方法
-
Rack::Protection::CookieTossing(未包含在use Rack::Protection中)
IP 欺骗
防止方法
有助于防止协议降级攻击和 Cookie 劫持
防止方法
-
Rack::Protection::StrictTransport(未包含在use Rack::Protection中)
安装
gem install rack-protection
检测
通过将检测器作为选项传递来启用检测。
use Rack::Protection, instrumenter: ActiveSupport::Notifications
检测器将接收一个命名空间(字符串)和一个环境(哈希)。命名空间为“rack.protection”,攻击类型可以从环境键“rack.protection.attack”中获取。
