Update to Drupal 8.2.0. For more information, see https://www.drupal.org/project/drupal/releases/8.2.0
This commit is contained in:
parent
2f563ab520
commit
f1c8716f57
1732 changed files with 52334 additions and 11780 deletions
|
|
@ -1,4 +1,5 @@
|
|||
<?php
|
||||
|
||||
/**
|
||||
* @file
|
||||
* Functions that need to be loaded on every Drupal request.
|
||||
|
|
@ -11,6 +12,7 @@ use Drupal\Component\Utility\Unicode;
|
|||
use Drupal\Core\Logger\RfcLogLevel;
|
||||
use Drupal\Core\Render\Markup;
|
||||
use Drupal\Component\Render\MarkupInterface;
|
||||
use Drupal\Core\Test\TestDatabase;
|
||||
use Drupal\Core\Session\AccountInterface;
|
||||
use Drupal\Core\Site\Settings;
|
||||
use Drupal\Core\Utility\Error;
|
||||
|
|
@ -599,7 +601,7 @@ function _drupal_exception_handler_additional($exception, $exception2) {
|
|||
* @param string $new_prefix
|
||||
* Internal use only. A new prefix to be stored.
|
||||
*
|
||||
* @return string|FALSE
|
||||
* @return string|false
|
||||
* Either the simpletest prefix (the string "simpletest" followed by any
|
||||
* number of digits) or FALSE if the user agent does not contain a valid
|
||||
* HMAC and timestamp.
|
||||
|
|
@ -622,7 +624,7 @@ function drupal_valid_test_ua($new_prefix = NULL) {
|
|||
// string.
|
||||
$http_user_agent = isset($_SERVER['HTTP_USER_AGENT']) ? $_SERVER['HTTP_USER_AGENT'] : NULL;
|
||||
$user_agent = isset($_COOKIE['SIMPLETEST_USER_AGENT']) ? $_COOKIE['SIMPLETEST_USER_AGENT'] : $http_user_agent;
|
||||
if (isset($user_agent) && preg_match("/^(simpletest\d+):(.+):(.+):(.+)$/", $user_agent, $matches)) {
|
||||
if (isset($user_agent) && preg_match("/^simple(\w+\d+):(.+):(.+):(.+)$/", $user_agent, $matches)) {
|
||||
list(, $prefix, $time, $salt, $hmac) = $matches;
|
||||
$check_string = $prefix . ':' . $time . ':' . $salt;
|
||||
// Read the hash salt prepared by drupal_generate_test_ua().
|
||||
|
|
@ -630,7 +632,8 @@ function drupal_valid_test_ua($new_prefix = NULL) {
|
|||
// handlers are set up. While Drupal's error handling may be properly
|
||||
// configured on production sites, the server's PHP error_reporting may not.
|
||||
// Ensure that no information leaks on production sites.
|
||||
$key_file = DRUPAL_ROOT . '/sites/simpletest/' . substr($prefix, 10) . '/.htkey';
|
||||
$test_db = new TestDatabase($prefix);
|
||||
$key_file = DRUPAL_ROOT . '/' . $test_db->getTestSitePath() . '/.htkey';
|
||||
if (!is_readable($key_file)) {
|
||||
header($_SERVER['SERVER_PROTOCOL'] . ' 403 Forbidden');
|
||||
exit;
|
||||
|
|
@ -640,11 +643,15 @@ function drupal_valid_test_ua($new_prefix = NULL) {
|
|||
$key = $private_key . filectime(__FILE__) . fileinode(__FILE__);
|
||||
$time_diff = REQUEST_TIME - $time;
|
||||
$test_hmac = Crypt::hmacBase64($check_string, $key);
|
||||
// Since we are making a local request a 5 second time window is allowed,
|
||||
// Since we are making a local request a 600 second time window is allowed,
|
||||
// and the HMAC must match.
|
||||
if ($time_diff >= 0 && $time_diff <= 5 && $hmac === $test_hmac) {
|
||||
if ($time_diff >= 0 && $time_diff <= 600 && $hmac === $test_hmac) {
|
||||
$test_prefix = $prefix;
|
||||
}
|
||||
else {
|
||||
header($_SERVER['SERVER_PROTOCOL'] . ' 403 Forbidden (SIMPLETEST_USER_AGENT invalid)');
|
||||
exit;
|
||||
}
|
||||
}
|
||||
return $test_prefix;
|
||||
}
|
||||
|
|
@ -657,7 +664,8 @@ function drupal_generate_test_ua($prefix) {
|
|||
|
||||
if (!isset($key) || $last_prefix != $prefix) {
|
||||
$last_prefix = $prefix;
|
||||
$key_file = DRUPAL_ROOT . '/sites/simpletest/' . substr($prefix, 10) . '/.htkey';
|
||||
$test_db = new TestDatabase($prefix);
|
||||
$key_file = DRUPAL_ROOT . '/' . $test_db->getTestSitePath() . '/.htkey';
|
||||
// When issuing an outbound HTTP client request from within an inbound test
|
||||
// request, then the outbound request has to use the same User-Agent header
|
||||
// as the inbound request. A newly generated private key for the same test
|
||||
|
|
@ -682,7 +690,7 @@ function drupal_generate_test_ua($prefix) {
|
|||
// Generate a moderately secure HMAC based on the database credentials.
|
||||
$salt = uniqid('', TRUE);
|
||||
$check_string = $prefix . ':' . time() . ':' . $salt;
|
||||
return $check_string . ':' . Crypt::hmacBase64($check_string, $key);
|
||||
return 'simple' . $check_string . ':' . Crypt::hmacBase64($check_string, $key);
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
|
|||
Reference in a new issue