Skip to content

Latest commit

 

History

History
2230 lines (2164 loc) · 137 KB

CHANGELOG.md

File metadata and controls

2230 lines (2164 loc) · 137 KB

CHANGELOG

2.2.5 (2013-10-31)

SECURITY UPDATES

An issue with Zend\Http\PhpEnvironment\RemoteAddress was reported in #5374. Essentially, the class was not checking if $_SERVER['REMOTE_ADDR'] was one of the trusted proxies configured, and as a result, getIpAddressFromProxy() could return an untrusted IP address.

The class was updated to check if $_SERVER['REMOTE_ADDR'] is in the list of trusted proxies, and, if so, will return that value immediately before consulting the values in the X-Forwarded-For header.

If you use the RemoteAddr Zend\Session validator, and are configuring trusted proxies, we recommend updating to 2.2.5 or later immediately.

Potential Breakage

  • #5343 removed the DateTimeFormatter filter from DateTime form elements. This was done due to the fact that it led to unexpected behavior when non-date inputs were provided. However, since the DateTime element already incorporates a DateValidator that accepts a date format, validation can still work as expected.

2.2.4 (2013-08-26)

2.2.3 (2013-08-21):

2.2.2 (2013-07-24):

2.2.1 (2013-06-12):

2.2.0 (2013-05-15):

Potential Breakage

Zend\Validator was altered to remove the dependency on Zend\I18n by creating Segregated Interfaces. The practical upshot is that Zend\Validator\AbstractValidator no longer implements Zend\I18n\Translator\TranslatorAwareInterface, but rather Zend\Validator\Translator\TranslatorAwareInterface, which now typehints on Zend\Validator\Translator\TranslatorInterface instead of Zend\I18n\Translator\Translator. This means you cannot pass a Zend\I18n\Translator\Translator instance directly to a validator any longer.

However, we have included a new class, Zend\Mvc\I18n\Translator, that extends the i18n Translator class and implements the Validator TranslatorInterface. This class may be used as a drop-in replacement. In fact, by default, Zend\Validator\ValidatorPluginManager is now using the MvcTranslator service, which utilizes this new class, making the change seamless for most users.

The above change will only affect you if you were manually injecting a translator instance into your validators.

2.1.5 (17 Apr 2013):

2.1.4 (13 Mar 2013):

2.1.3 (21 Feb 2013):

2.1.2 (20 Feb 2013):

2.1.1 (06 Feb 2013):

2.1.0 (29 Jan 2013):

Potential Breakage

Includes a fix to the classes Zend\Filter\Encrypt and Zend\Filter\Decrypt which may pose a small break for end-users. Each requires an encryption key be passed to either the constructor or the setKey() method now; this was done to improve the security of each class.

Zend\Session includes a new Zend\Session\Storage\SessionArrayStorage class, which acts as a direct proxy to the $_SESSION superglobal. The SessionManager class now uses this new storage class by default, in order to fix an error that occurs when directly manipulating nested arrays of $_SESSION in third-party code. For most users, the change will be seamless. Those affected will be those (a) directly accessing the storage instance, and (b) using object notation to access session members:

$foo = null;
/** @var $storage Zend\Session\Storage\SessionStorage */
if (isset($storage->foo)) {
    $foo = $storage->foo;
}

If you are using array notation, as in the following example, your code remains forwards compatible:

$foo = null;

/** @var $storage Zend\Session\Storage\SessionStorage */
if (isset($storage['foo'])) {
    $foo = $storage['foo'];
}

If you are not working directly with the storage instance, you will be unaffected.

For those affected, the following courses of action are possible:

  • Update your code to replace object property notation with array notation, OR
  • Initialize and register a Zend\Session\Storage\SessionStorage object explicitly with the session manager instance.

2.0.8 (13 Mar 2013):

2.0.7 (29 Jan 2013):

Potential Breakage

Includes a fix to the classes Zend\Filter\Encrypt and Zend\Filter\Decrypt which may pose a small break for end-users. Each requires an encryption key be passed to either the constructor or the setKey() method now; this was done to improve the security of each class.

2.0.6 (19 Dec 2012):

2.0.5 (29 Nov 2012):

2.0.4 (20 Nov 2012):

2.0.3 (17 Oct 2012):

2.0.2 (21 Sep 2012):

2.0.1 (20 Sep 2012):