63 \
Magento\Framework\HTTP\PhpEnvironment\RemoteAddress $remoteAddress,
65 array $skippedUserAgentList = []
67 $this->_scopeConfig = $scopeConfig;
68 $this->_remoteAddress = $remoteAddress;
69 $this->_skippedAgentList = $skippedUserAgentList;
70 $this->_scopeType = $scopeType;
82 if (!isset($_SESSION[self::VALIDATOR_KEY])) {
88 $session->destroy([
'clear_storage' =>
false]);
107 if ($this->_scopeConfig->getValue(
108 self::XML_PATH_USE_REMOTE_ADDR,
114 'The "%1" session value is invalid. Verify and try again.',
115 [self::VALIDATOR_REMOTE_ADDR_KEY]
119 if ($this->_scopeConfig->getValue(
120 self::XML_PATH_USE_HTTP_VIA,
126 'The "%1" session value is invalid. Verify and try again.',
127 [self::VALIDATOR_HTTP_VIA_KEY]
134 if ($this->_scopeConfig->getValue(
135 self::XML_PATH_USE_X_FORWARDED,
137 ) && $httpXForwardedKey != $validatorXForwarded
141 'The "%1" session value is invalid. Verify and try again.',
142 [self::VALIDATOR_HTTP_X_FORWARDED_FOR_KEY]
146 if ($this->_scopeConfig->getValue(
147 self::XML_PATH_USE_USER_AGENT,
151 foreach ($this->_skippedAgentList as $agent) {
152 if (preg_match(
'/' . $agent .
'/iu', $validatorData[self::VALIDATOR_HTTP_USER_AGENT_KEY])) {
158 'The "%1" session value is invalid. Verify and try again.',
159 [self::VALIDATOR_HTTP_USER_AGENT_KEY]
175 self::VALIDATOR_REMOTE_ADDR_KEY =>
'',
176 self::VALIDATOR_HTTP_VIA_KEY =>
'',
177 self::VALIDATOR_HTTP_X_FORWARDED_FOR_KEY =>
'',
178 self::VALIDATOR_HTTP_USER_AGENT_KEY =>
'',
182 if ($this->_remoteAddress->getRemoteAddress()) {
185 if (isset($_ENV[
'HTTP_VIA'])) {
188 if (isset($_ENV[
'HTTP_X_FORWARDED_FOR'])) {
193 if (isset($_SERVER[
'HTTP_USER_AGENT'])) {
const XML_PATH_USE_X_FORWARDED
const VALIDATOR_HTTP_USER_AGENT_KEY
validate(SessionManagerInterface $session)
const XML_PATH_USE_HTTP_VIA
const VALIDATOR_REMOTE_ADDR_KEY
const VALIDATOR_HTTP_VIA_KEY
const XML_PATH_USE_USER_AGENT
const VALIDATOR_HTTP_X_FORWARDED_FOR_KEY
__construct(\Magento\Framework\App\Config\ScopeConfigInterface $scopeConfig, \Magento\Framework\HTTP\PhpEnvironment\RemoteAddress $remoteAddress, $scopeType, array $skippedUserAgentList=[])
const XML_PATH_USE_REMOTE_ADDR