다른 사람들처럼 로그 파일도 데이터 쓰기를 완전히 중단했습니다.
버그의 원인-데이터를 쓰지 않는 로그 파일
에서 app/Mage.php
그들은이 변경을했다 :
// Validate file extension before save. Allowed file extensions: log, txt, html, csv
- if (!self::helper('log')->isLogFileExtensionValid($file)) {
+ $_allowedFileExtensions = explode(
+ ',',
+ (string) self::getConfig()->getNode('dev/log/allowedFileExtensions', Mage_Core_Model_Store::DEFAULT_CODE)
+ );
+ $logValidator = new Zend_Validate_File_Extension($_allowedFileExtensions);
+ $logDir = self::getBaseDir('var') . DS . 'log';
+ if (!$logValidator->isValid($logDir . DS . $file)) {
return;
}
승인 된 파일 확장자의 쉼표로 구분 된 목록을 구성에서 찾고 있습니다. 그러나 그들은 구성 에이 목록을 추가하지 않았습니다-우리가 직접 구성 할 수있는 마법사 관리자의 옵션조차 없습니다.
버그 해결-데이터를 쓰지 않는 로그 파일
이 문제를 해결하려면 core_config_data
테이블 의 데이터베이스에 입력 하십시오.
INSERT INTO core_config_data VALUES ( NULL, 'default', 0, 'dev/log/allowedFileExtensions', 'log,txt,html,csv' );
개체 캐시도 지우면 로그 파일에 데이터 쓰기가 다시 한 번 표시됩니다.
ls -lrt var/log/ | tail
참고로이 문제는 모든 보안 패치가 적용된 EE 1.14.2.0에서 발생했습니다.
이 문제에 대해 Magento Support에서 티켓을 열었지만 아직 기술자로부터 응답을받지 못했습니다. 나는 대기열에 있습니다.
이 버그에 대해 정말로 혼란스러워하는 것은 Magento에 이미 2017 년 말 SUPEE-10415를 통해 추가 한 로그 파일 확장자를 검증하는 방법이 있다는 것입니다.
app/code/core/Mage/Log/Helper/Data.php
/**
* Checking if file extensions is allowed. If passed then return true.
*
* @param $file
* @return bool
*/
public function isLogFileExtensionValid($file)
{
$result = false;
$validatedFileExtension = pathinfo($file, PATHINFO_EXTENSION);
if ($validatedFileExtension && in_array($validatedFileExtension, $this->_allowedFileExtensions)) {
$result = true;
}
return $result;
}
그들은 불완전한 재발 명 로그 휠을 시도하는 대신 그 논리를 재사용하지 않은 이유는 무엇입니까?