This repository has been archived on 2023-08-20. You can view files and clone it, but cannot push or open issues or pull requests.
Go to file
Fabien Potencier ec4e9d2fc7 minor #14028 [Security] [Core] String utils refactor (sarciszewski, ircmaxell)
This PR was submitted for the 2.7 branch but it was merged into the 2.3 branch instead (closes #14028).

Discussion
----------

[Security] [Core] String utils refactor

| Q             | A
| ------------- | ---
| Bug fix?      | yes
| New feature?  | no
| BC breaks?    | no
| Deprecations? | no
| Tests pass?   | yes
| Fixed tickets |
| License       | MIT
| Doc PR        |

This supersedes #13984 (it includes it, but also includes additional refactoring).

Since length information is leaked in any case, preventing unnecessary duplication of secrets is important. Since casting will *always* make a copy, we only cast if absolutely necessary. Additionally, appending will create a new copy of the secret, so we avoid doing that, but instead only iterate over the minimum of the two strings.

Commits
-------

45cfb44 Change behavior to mirror hash_equals() returning early if there is a length mismatch
8269589 CS fixing
bdea4ba Prevent modifying secrets as much as possible
76b36d3 Update StringUtils.php
7221efc Whitespace
56ed71c Update StringUtils.php
2015-03-25 10:28:01 +01:00
src/Symfony Change behavior to mirror hash_equals() returning early if there is a length mismatch 2015-03-25 10:28:01 +01:00
.editorconfig Add EditorConfig File 2012-06-16 14:08:15 +02:00
.gitignore Test with local components instead of waiting for the subtree-splitter when possible 2015-03-05 00:16:30 +01:00
.php_cs CS: Ensure there is no code on the same line as the PHP open tag and it is followed by a blankline 2015-03-24 17:36:00 +01:00
.travis.sh [travis] Do no tar in // 2015-03-13 13:47:20 +01:00
.travis.yml [2.3] add @group legacy 2015-03-13 18:09:38 +01:00
CHANGELOG-2.2.md Merge branch '2.2' into 2.3 2013-12-03 15:51:26 +01:00
CHANGELOG-2.3.md updated CHANGELOG for 2.3.26 2015-03-17 15:16:29 +01:00
composer.json [2.3] require-dev PHPUnit bridge 2015-02-24 11:24:26 +01:00
CONTRIBUTING.md [2.3] Update CONTRIBUTING.md 2015-02-24 10:01:10 +01:00
CONTRIBUTORS.md update CONTRIBUTORS for 2.3.26 2015-03-17 15:17:33 +01:00
LICENSE Updated copyright to 2015 2015-01-01 13:56:52 +01:00
phpunit.xml.dist [2.3] require-dev PHPUnit bridge 2015-02-24 11:24:26 +01:00
README.md Rename Symfony2 to Symfony 2014-11-24 15:09:11 +01:00
UPGRADE-2.1.md Remove aligned '=>' and '=' 2014-10-26 08:30:58 +01:00
UPGRADE-2.2.md [Doc] Use Markdown syntax highlighting 2014-10-01 07:38:33 +02:00
UPGRADE-2.3.md [Doc] Use Markdown syntax highlighting 2014-10-01 07:38:33 +02:00
UPGRADE-3.0.md Adjust upgrade file rendering 2014-11-18 09:38:51 +01:00

README

What is Symfony?

Symfony is a PHP 5.3 full-stack web framework. It is written with speed and flexibility in mind. It allows developers to build better and easy to maintain websites with PHP.

Symfony can be used to develop all kind of websites, from your personal blog to high traffic ones like Dailymotion or Yahoo! Answers.

Requirements

Symfony is only supported on PHP 5.3.3 and up.

Be warned that PHP versions before 5.3.8 are known to be buggy and might not work for you:

Installation

The best way to install Symfony is to download the Symfony Standard Edition available at http://symfony.com/download.

Documentation

The "Quick Tour" tutorial gives you a first feeling of the framework. If, like us, you think that Symfony can help speed up your development and take the quality of your work to the next level, read the official Symfony documentation.

Contributing

Symfony is an open source, community-driven project. If you'd like to contribute, please read the Contributing Code part of the documentation. If you're submitting a pull request, please follow the guidelines in the Submitting a Patch section and use Pull Request Template.

Running Symfony Tests

Information on how to run the Symfony test suite can be found in the Running Symfony Tests section.