R-U-Dead-Yet (R.U.D.Y.) 攻击通过提交长表单字段来实现拒绝服务 (DoS)。使用自定义规则通过阻止没有合法会话 cookie 的请求来阻止这些攻击。
此示例结合了三个表达式以定位不包含合法身份验证会话 cookie 的 HTTP POST 请求:
-
第一个表达式使用
http.request.uri.path字段定位要防止 R.U.D.Y. 攻击的安全路径:http.request.uri.path matches "(comment|conversation|event|poll)/create" -
第二个表达式使用正则表达式来匹配合法
auth_sessioncookie 的格式。not运算符定位未正确格式化该 cookie 的请求:not http.cookie matches "auth_session=[0-9a-zA-Z]{32}-[0-9]{10}-[0-9a-z]{6}" -
第三个表达式定位 HTTP
POST请求:http.request.method eq "POST"
为了生成此示例的最终自定义规则表达式,将这三个表达式使用 and 运算符组合成一个复合表达式。当对任何指定 URI 的 HTTP POST 请求不包含格式正确的 auth_session cookie 时,Cloudflare 将阻止该请求:
-
当传入请求匹配时:
使用表达式编辑器:
(http.request.method eq "POST" and http.request.uri.path matches "(comment|conversation|event|poll)/create" and not http.cookie matches "auth_session=[0-9a-zA-Z]{32}-[0-9]{10}-[0-9a-z]{6}") -
然后采取操作:阻止