I decided to just flat out google “disallowed key characters” (DKC’s) rather than searching for that phrase here in the forums. I came upon an interesting post in the EE Wiki regarding DKC’s and mobile sites: Mobile Site - Disallowed Key Characters
Particularly towards the end:
Replace line 138 $_COOKIE[$this->clean_input_keys($key)] = $REGX->xss_clean($this->clean_input_data($val)); with if (substr($key, 0, 4) == 'exp_') { $_COOKIE[$this->clean_input_keys($key)] = $REGX->xss_clean($this->clean_input_data($val)); }Note this forces Expression Engine to only check cookies with the prefix “exp”. [...] Your alternative is to allow $ inside your forms but this is usually not a good thing from a security perspective.
We’re only running into issues with cookies from this one vendor, and those cookies start with “cm”. I"ve a feeling I could do something like this:
if (substr($key, 0, 2) != 'cm') {
$_COOKIE[$this->clean_input_keys($key)] = $REGX->xss_clean($this->clean_input_data($val));
}That should hit and clean every cookie that isn’t from that particular vendor. I think.