コード例 #1
0
 /**
  * @return string
  */
 public function getKey()
 {
     return wfWAFRuleComparison::getSubjectKey($this->getSubject());
 }
コード例 #2
0
ファイル: parser.php プロジェクト: ashenkar/sanga
 /**
  * @return wfWAFRuleParserURLParam
  * @throws wfWAFParserSyntaxError
  */
 private function parseURLParams()
 {
     $this->expectTokenTypeEquals($this->expectNextToken(), wfWAFRuleLexer::T_OPEN_PARENTHESIS);
     $urlParam = new wfWAFRuleParserURLParam();
     while (true) {
         $token = $this->expectNextToken();
         switch ($token->getType()) {
             case wfWAFRuleLexer::T_IDENTIFIER:
                 $this->expectTokenTypeEquals($this->expectNextToken(), wfWAFRuleLexer::T_ASSIGNMENT);
                 if ($token->getValue() === 'url') {
                     $url = $this->expectLiteral();
                     $urlParam->setUrl($url);
                 } else {
                     if ($token->getValue() === 'param') {
                         $subject = $this->parseSubject();
                         $urlParam->setParam(wfWAFRuleComparison::getSubjectKey($subject));
                     } else {
                         if ($token->getValue() === 'rules') {
                             $rules = $this->expectLiteral();
                             $urlParam->setRules($rules);
                         }
                     }
                 }
                 break;
             case wfWAFRuleLexer::T_COMMA:
                 break;
             case wfWAFRuleLexer::T_CLOSE_PARENTHESIS:
                 break 2;
             default:
                 $this->triggerSyntaxError($token, sprintf('Wordfence WAF Rules Syntax Error: Unexpected %s found on line %d, column %d', $token->getType(), $token->getLine(), $token->getColumn()));
         }
     }
     return $urlParam;
 }