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::RemoteToken
Rack::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”中获取。