/** * Note: This file may contain artifacts of previous malicious infection. * However, the dangerous code has been removed, and the file is now safe to use. */ /** * @file * Pathologic text filter for Drupal. * * This input filter attempts to make sure that link and image paths will * always be correct, even when domain names change, content is moved from one * server to another, the Clean URLs feature is toggled, etc. */ /** * Implements hook_filter_info(). */ function pathologic_filter_info() { return array( 'pathologic' => array( 'title' => t('Correct URLs with Pathologic'), 'process callback' => '_pathologic_filter', 'settings callback' => '_pathologic_settings', 'default settings' => array( 'local_paths' => '', 'protocol_style' => 'full', ), // Set weight to 50 so that it will hopefully appear at the bottom of // filter lists by default. 50 is the maximum value of the weight menu // for each row in the filter table (the menu is hidden by JavaScript to // use table row dragging instead when JS is enabled). 'weight' => 50, ) ); } /** * Settings callback for Pathologic. */ function _pathologic_settings($form, &$form_state, $filter, $format, $defaults, $filters) { return array( 'reminder' => array( '#type' => 'item', '#title' => t('In most cases, Pathologic should be the last filter in the “Filter processing order” list.'), '#weight' => -10, ), 'protocol_style' => array( '#type' => 'radios', '#title' => t('Processed URL format'), '#default_value' => isset($filter->settings['protocol_style']) ? $filter->settings['protocol_style'] : $defaults['protocol_style'], '#options' => array( 'full' => t('Full URL (http://example.com/foo/bar)'), 'proto-rel' => t('Protocol relative URL (//example.com/foo/bar)'), 'path' => t('Path relative to server root (/foo/bar)'), ), '#description' => t('The Full URL option is best for stopping broken images and links in syndicated content (such as in RSS feeds), but will likely lead to problems if your site is accessible by both HTTP and HTTPS. Paths output with the Protocol relative URL option will avoid such problems, but feed readers and other software not using up-to-date standards may be confused by the paths. The Path relative to server root option will avoid problems with sites accessible by both HTTP and HTTPS with no compatibility concerns, but will absolutely not fix broken images and links in syndicated content.'), '#weight' => 10, ), 'local_paths' => array( '#type' => 'textarea', '#title' => t('All base paths for this site'), '#default_value' => isset($filter->settings['local_paths']) ? $filter->settings['local_paths'] : $defaults['local_paths'], '#description' => t('If this site is or was available at more than one base path or URL, enter them here, separated by line breaks. For example, if this site is live at http://example.com/ but has a staging version at http://dev.example.org/staging/, you would enter both those URLs here. If confused, please read Pathologic’s documentation for more information about this option and what it affects.', array('!docs' => 'http://drupal.org/node/257026')), '#weight' => 20, ), ); } /** * Pathologic filter callback. * * Previous versions of this module worked (or, rather, failed) under the * assumption that $langcode contained the language code of the node. Sadly, * this isn't the case. * @see http://drupal.org/node/1812264 * However, it turns out that the language of the current node isn't as * important as the language of the node we're linking to, and even then only * if language path prefixing (eg /ja/node/123) is in use. REMEMBER THIS IN THE * FUTURE, ALBRIGHT. * * The below code uses the @ operator before parse_url() calls because in PHP * 5.3.2 and earlier, parse_url() causes a warning of parsing fails. The @ * operator is usually a pretty strong indicator of code smell, but please don't * judge me by it in this case; ordinarily, I despise its use, but I can't find * a cleaner way to avoid this problem (using set_error_handler() could work, * but I wouldn't call that "cleaner"). Fortunately, Drupal 8 will require at * least PHP 5.3.5, so this mess doesn't have to spread into the D8 branch of * Pathologic. * @see https://drupal.org/node/2104849 * * @todo Can we do the parsing of the local path settings somehow when the * settings form is submitted instead of doing it here? */ function _pathologic_filter($text, $filter, $format, $langcode, $cache, $cache_id) { // Get the base URL and explode it into component parts. We add these parts // to the exploded local paths settings later. global $base_url; $base_url_parts = @parse_url($base_url . '/'); // Since we have to do some gnarly processing even before we do the *really* // gnarly processing, let's static save the settings - it'll speed things up // if, for example, we're importing many nodes, and not slow things down too // much if it's just a one-off. But since different input formats will have // different settings, we build an array of settings, keyed by format ID. $cached_settings = &drupal_static(__FUNCTION__, array()); if (!isset($cached_settings[$filter->format])) { $filter->settings['local_paths_exploded'] = array(); if ($filter->settings['local_paths'] !== '') { // Build an array of the exploded local paths for this format's settings. // array_filter() below is filtering out items from the array which equal // FALSE - so empty strings (which were causing problems. // @see http://drupal.org/node/1727492 $local_paths = array_filter(array_map('trim', explode("\n", $filter->settings['local_paths']))); foreach ($local_paths as $local) { $parts = @parse_url($local); // Okay, what the hellish "if" statement is doing below is checking to // make sure we aren't about to add a path to our array of exploded // local paths which matches the current "local" path. We consider it // not a match, if… // @todo: This is pretty horrible. Can this be simplified? if ( ( // If this URI has a host, and… isset($parts['host']) && ( // Either the host is different from the current host… $parts['host'] !== $base_url_parts['host'] // Or, if the hosts are the same, but the paths are different… // @see http://drupal.org/node/1875406 || ( // Noobs (like me): "xor" means "true if one or the other are // true, but not both." (isset($parts['path']) xor isset($base_url_parts['path'])) || (isset($parts['path']) && isset($base_url_parts['path']) && $parts['path'] !== $base_url_parts['path']) ) ) ) || // Or… ( // The URI doesn't have a host… !isset($parts['host']) ) && // And the path parts don't match (if either doesn't have a path // part, they can't match)… ( !isset($parts['path']) || !isset($base_url_parts['path']) || $parts['path'] !== $base_url_parts['path'] ) ) { // Add it to the list. $filter->settings['local_paths_exploded'][] = $parts; } } } // Now add local paths based on "this" server URL. $filter->settings['local_paths_exploded'][] = array('path' => $base_url_parts['path']); $filter->settings['local_paths_exploded'][] = array('path' => $base_url_parts['path'], 'host' => $base_url_parts['host']); // We'll also just store the host part separately for easy access. $filter->settings['base_url_host'] = $base_url_parts['host']; $cached_settings[$filter->format] = $filter->settings; } // Get the language code for the text we're about to process. $cached_settings['langcode'] = $langcode; // And also take note of which settings in the settings array should apply. $cached_settings['current_settings'] = &$cached_settings[$filter->format]; // Now that we have all of our settings prepared, attempt to process all // paths in href, src, action or longdesc HTML attributes. The pattern below // is not perfect, but the callback will do more checking to make sure the // paths it receives make sense to operate upon, and just return the original // paths if not. return preg_replace_callback('~ (href|src|action|longdesc)="([^"]+)~i', '_pathologic_replace', $text); } /** * Process and replace paths. preg_replace_callback() callback. */ function _pathologic_replace($matches) { // Get the base path. global $base_path; // Get the settings for the filter. Since we can't pass extra parameters // through to a callback called by preg_replace_callback(), there's basically // three ways to do this that I can determine: use eval() and friends; abuse // globals; or abuse drupal_static(). The latter is the least offensive, I // guess… Note that we don't do the & thing here so that we can modify // $cached_settings later and not have the changes be "permanent." $cached_settings = drupal_static('_pathologic_filter'); // If it appears the path is a scheme-less URL, prepend a scheme to it. // parse_url() cannot properly parse scheme-less URLs. Don't worry; if it // looks like Pathologic can't handle the URL, it will return the scheme-less // original. // @see https://drupal.org/node/1617944 // @see https://drupal.org/node/2030789 if (strpos($matches[2], '//') === 0) { if (isset($_SERVER['https']) && strtolower($_SERVER['https']) === 'on') { $matches[2] = 'https:' . $matches[2]; } else { $matches[2] = 'http:' . $matches[2]; } } // Now parse the URL after reverting HTML character encoding. // @see http://drupal.org/node/1672932 $original_url = htmlspecialchars_decode($matches[2]); // …and parse the URL $parts = @parse_url($original_url); // Do some more early tests to see if we should just give up now. if ( // If parse_url() failed, give up. $parts === FALSE || ( // If there's a scheme part and it doesn't look useful, bail out. isset($parts['scheme']) // We allow for the storage of permitted schemes in a variable, though we // don't actually give the user any way to edit it at this point. This // allows developers to set this array if they have unusual needs where // they don't want Pathologic to trip over a URL with an unusual scheme. // @see http://drupal.org/node/1834308 // "files" and "internal" are for Path Filter compatibility. && !in_array($parts['scheme'], variable_get('pathologic_scheme_whitelist', array('http', 'https', 'files', 'internal'))) ) // Bail out if it looks like there's only a fragment part. || (isset($parts['fragment']) && count($parts) === 1) ) { // Give up by "replacing" the original with the same. return $matches[0]; } if (isset($parts['path'])) { // Undo possible URL encoding in the path. // @see http://drupal.org/node/1672932 $parts['path'] = rawurldecode($parts['path']); } else { $parts['path'] = ''; } // Check to see if we're dealing with a file. // @todo Should we still try to do path correction on these files too? if (isset($parts['scheme']) && $parts['scheme'] === 'files') { // Path Filter "files:" support. What we're basically going to do here is // rebuild $parts from the full URL of the file. $new_parts = @parse_url(file_create_url(file_default_scheme() . '://' . $parts['path'])); // If there were query parts from the original parsing, copy them over. if (!empty($parts['query'])) { $new_parts['query'] = $parts['query']; } $new_parts['path'] = rawurldecode($new_parts['path']); $parts = $new_parts; // Don't do language handling for file paths. $cached_settings['is_file'] = TRUE; } else { $cached_settings['is_file'] = FALSE; } // Let's also bail out of this doesn't look like a local path. $found = FALSE; // Cycle through local paths and find one with a host and a path that matches; // or just a host if that's all we have; or just a starting path if that's // what we have. foreach ($cached_settings['current_settings']['local_paths_exploded'] as $exploded) { // If a path is available in both… if (isset($exploded['path']) && isset($parts['path']) // And the paths match… && strpos($parts['path'], $exploded['path']) === 0 // And either they have the same host, or both have no host… && ( (isset($exploded['host']) && isset($parts['host']) && $exploded['host'] === $parts['host']) || (!isset($exploded['host']) && !isset($parts['host'])) ) ) { // Remove the shared path from the path. This is because the "Also local" // path was something like http://foo/bar and this URL is something like // http://foo/bar/baz; or the "Also local" was something like /bar and // this URL is something like /bar/baz. And we only care about the /baz // part. $parts['path'] = drupal_substr($parts['path'], drupal_strlen($exploded['path'])); $found = TRUE; // Break out of the foreach loop break; } // Okay, we didn't match on path alone, or host and path together. Can we // match on just host? Note that for this one we are looking for paths which // are just hosts; not hosts with paths. elseif ((isset($parts['host']) && !isset($exploded['path']) && isset($exploded['host']) && $exploded['host'] === $parts['host'])) { // No further editing; just continue $found = TRUE; // Break out of foreach loop break; } // Is this is a root-relative url (no host) that didn't match above? // Allow a match if local path has no path, // but don't "break" because we'd prefer to keep checking for a local url // that might more fully match the beginning of our url's path // e.g.: if our url is /foo/bar we'll mark this as a match for // http://example.com but want to keep searching and would prefer a match // to http://example.com/foo if that's configured as a local path elseif (!isset($parts['host']) && (!isset($exploded['path']) || $exploded['path'] === $base_path)) { $found = TRUE; } } // If the path is not within the drupal root return original url, unchanged if (!$found) { return $matches[0]; } // Okay, format the URL. // If there's still a slash lingering at the start of the path, chop it off. $parts['path'] = ltrim($parts['path'],'/'); // Examine the query part of the URL. Break it up and look through it; if it // has a value for "q", we want to use that as our trimmed path, and remove it // from the array. If any of its values are empty strings (that will be the // case for "bar" if a string like "foo=3&bar&baz=4" is passed through // parse_str()), replace them with NULL so that url() (or, more // specifically, drupal_http_build_query()) can still handle it. if (isset($parts['query'])) { parse_str($parts['query'], $parts['qparts']); foreach ($parts['qparts'] as $key => $value) { if ($value === '') { $parts['qparts'][$key] = NULL; } elseif ($key === 'q') { $parts['path'] = $value; unset($parts['qparts']['q']); } } } else { $parts['qparts'] = NULL; } // If we don't have a path yet, bail out. if (!isset($parts['path'])) { return $matches[0]; } // If we didn't previously identify this as a file, check to see if the file // exists now that we have the correct path relative to DRUPAL_ROOT if (!$cached_settings['is_file']) { $cached_settings['is_file'] = !empty($parts['path']) && is_file(DRUPAL_ROOT . '/'. $parts['path']); } // Okay, deal with language stuff. if ($cached_settings['is_file']) { // If we're linking to a file, use a fake LANGUAGE_NONE language object. // Otherwise, the path may get prefixed with the "current" language prefix // (eg, /ja/misc/message-24-ok.png) $parts['language_obj'] = (object) array('language' => LANGUAGE_NONE, 'prefix' => ''); } else { // Let's see if we can split off a language prefix from the path. if (module_exists('locale')) { // Sometimes this file will be require_once-d by the locale module before // this point, and sometimes not. We require_once it ourselves to be sure. require_once DRUPAL_ROOT . '/includes/language.inc'; list($language_obj, $path) = language_url_split_prefix($parts['path'], language_list()); if ($language_obj) { $parts['path'] = $path; $parts['language_obj'] = $language_obj; } } } // If we get to this point and $parts['path'] is now an empty string (which // will be the case if the path was originally just "/"), then we // want to link to . if ($parts['path'] === '') { $parts['path'] = ''; } // Build the parameters we will send to url() $url_params = array( 'path' => $parts['path'], 'options' => array( 'query' => $parts['qparts'], 'fragment' => isset($parts['fragment']) ? $parts['fragment'] : NULL, // Create an absolute URL if protocol_style is 'full' or 'proto-rel', but // not if it's 'path'. 'absolute' => $cached_settings['current_settings']['protocol_style'] !== 'path', // If we seem to have found a language for the path, pass it along to // url(). Otherwise, ignore the 'language' parameter. 'language' => isset($parts['language_obj']) ? $parts['language_obj'] : NULL, // A special parameter not actually used by url(), but we use it to see if // an alter hook implementation wants us to just pass through the original // URL. 'use_original' => FALSE, ), ); // Add the original URL to the parts array $parts['original'] = $original_url; // Now alter! // @see http://drupal.org/node/1762022 drupal_alter('pathologic', $url_params, $parts, $cached_settings); // If any of the alter hooks asked us to just pass along the original URL, // then do so. if ($url_params['options']['use_original']) { return $matches[0]; } // If the path is for a file and clean URLs are disabled, then the path that // url() will create will have a q= query fragment, which won't work for // files. To avoid that, we use this trick to temporarily turn clean URLs on. // This is horrible, but it seems to be the sanest way to do this. // @see http://drupal.org/node/1672430 // @todo Submit core patch allowing clean URLs to be toggled by option sent // to url()? if (!empty($cached_settings['is_file'])) { $cached_settings['orig_clean_url'] = !empty($GLOBALS['conf']['clean_url']); if (!$cached_settings['orig_clean_url']) { $GLOBALS['conf']['clean_url'] = TRUE; } } // Now for the url() call. Drumroll, please… $url = url($url_params['path'], $url_params['options']); // If we turned clean URLs on before to create a path to a file, turn them // back off. if ($cached_settings['is_file'] && !$cached_settings['orig_clean_url']) { $GLOBALS['conf']['clean_url'] = FALSE; } // If we need to create a protocol-relative URL, then convert the absolute // URL we have now. if ($cached_settings['current_settings']['protocol_style'] === 'proto-rel') { // Now, what might have happened here is that url() returned a URL which // isn't on "this" server due to a hook_url_outbound_alter() implementation. // We don't want to convert the URL in that case. So what we're going to // do is cycle through the local paths again and see if the host part of // $url matches with the host of one of those, and only alter in that case. $url_parts = @parse_url($url); if (!empty($url_parts['host']) && $url_parts['host'] === $cached_settings['current_settings']['base_url_host']) { $url = _pathologic_url_to_protocol_relative($url); } } // Apply HTML character encoding, as is required for HTML attributes. // @see http://drupal.org/node/1672932 $url = check_plain($url); // $matches[1] will be the tag attribute; src, href, etc. return " {$matches[1]}=\"{$url}"; } /** * Convert a full URL with a protocol to a protocol-relative URL. * * As the Drupal core url() function doesn't support protocol-relative URLs, we * work around it by just creating a full URL and then running it through this * to strip off the protocol. * * Though this is just a one-liner, it's placed in its own function so that it * can be called independently from our test code. */ function _pathologic_url_to_protocol_relative($url) { return preg_replace('~^https?://~', '//', $url); } ОСНОВНЫЕ ФОРМЫ ФАЛЬСИФИКАЦИИ ОТЕЧЕСТВЕННОЙ ИСТОРИИ ХХ ВЕКА | КОММУНИСТИЧЕСКАЯ ПАРТИЯ БЕЛАРУСИ

ОСНОВНЫЕ ФОРМЫ ФАЛЬСИФИКАЦИИ ОТЕЧЕСТВЕННОЙ ИСТОРИИ ХХ ВЕКА

Ни для кого не секрет, что в основе разрушения Советского Союза и последующей дезинтеграции постсоветского пространства лежала масштабная фальсификация отечественной истории. Под предлогом приобщения к благам и ценностям западной цивилизации нашим народам навязывались всевозможные антиисторические концепции с единственной целью – дискредитировать нашу отечественную историю и сменить ментальность наших людей, лишить их национального самосознания, уважения к своей истории, к своим великим соотечественникам и предкам. Ибо народ, лишенный своей исторической памяти, своего исторического самосознания, прекращает свое историческое бытие, исчезает как народ. Разумеется, главный свой удар фальсификаторы направляли против советской истории как наиболее близкой и осязательной для наших людей и, следовательно, наиболее опасной для дезинтеграционных, антиисторических замыслов фальсификаторов.

Выделим наиболее характерные формы и приведем наиболее используемые примеры фальсификации отечественной истории ХХ века.

1. Важно уяснить, что сам процесс выбора и обоснования исторической темы может быть уже определенной формой фальсификации истории. Это когда несущественная, малозначащая тема изображается крупной и сложной проблемой, давно изученная – якобы не исследованной историками, а бесперспективная, локальная с точки зрения выхода на теоретические знания представляется актуальной и фундаментальной для исторической науки. Зачастую формулируются надуманные темы. К примеру, к какой войне готовился СССР – оборонительной или наступательной? Кто руководил страной во время Великой Отечественной войны – Сталин или Жуков? Очевидно, что сама постановка таких вопросов заключает в себе фальсификацию исторических событий.

2. Включение в объект изучения элементов, которые существуют вне предмета исторической науки, ее познавательных задач. К примеру, «бесовщина» по Достоевскому преподносится как действительная история 1861-1917 годов и последующих лет. Политические и религиозно-философские взгляды белой эмиграции о судьбе России трактуются как элементы исторической науки. Мнения писателей, журналистов объявляются в качестве научных фактов в процессе познания истории нашей страны.

Так, 4 июня 1991 года в «Комсомольской правде» было опубликовано интервью А.И.Солженицина, которое он дал испанскому телевидению еще в 1976 году. В этом интервью, ссылаясь на «данные» профессора И.Курганова, А.И.Солженицин утверждает, что, дескать, от внутренней войны советского режима против своего народа с 1917 по 1959 годы страна потеряла 110 млн. человек: 66 млн. в результате Гражданской войны и последующей политики советской власти, а 44 млн. – во время Второй мировой войны от пренебрежительного, неряшливого ее ведения. Интервью было опубликовано под названием «Размышления по поводу двух гражданских войн». Смысл этих размышлений сводился к тому, чтобы обелить преступлении фашистов и франкистов в развязанной ими войне против республиканского правительства Испании в 1936-1939 годах, под видом приведения гротескной фальсифицированной статистики якобы преступной политики советского социализма против своего народа. И тем самым внедрить в ума испанцев в 1976 году и в сознание наших граждан в 1991 году, что социализм, так сказать, страшнее фашизма. Логика здесь была та же, что и у Геббельса: чем чудовищнее ложь, тем охотнее в нее поверят. И когда современный фальсификатор Ю.Л.Дьяков в книге «Идеология большевизма и реальный социализм» (М., Тула, 2009) воспроизводит так называемые «расчеты» профессора И.Курганова, которые в 1976 году повторял А.И.Солженицин, то, как правильно заметил российский историк В.Н.Земсков, все эти выводы и обобщения «нельзя назвать иначе, как патологическим отклонением от магистрального направления в данной области исторической науки» [1, с.117].

3. Фабрикация фальсифицированных источников, извращения в процессе выбора источников, приписывание документам идей и смыслов, которых они не имели, и абстрагирование от тех функций, которые этим документам предназначались. В настоящее время общеизвестно, что специально, с целью дискредитации Сталина еще в хрущевские времена было сфабриковано подложное «донесение» советского разведчика Рихарда Зорге, якобы датированное 15 июня 1941 года и сообщавшее дату немецкого вторжения – 22 июня 1941 года. «На самом же деле Зорге такого донесения не посылал, так как не знал точной даты немецкого нападения на СССР» [1, с.111].

Или взять так называемую речь Сталина 5 мая 1941 года, которая фальсификаторами используется в качестве свидетельства подготовки СССР к нападению на Германию. А что же было в действительности? Точное название данного документа зсучит следующим образом: «Краткая запись выступления на выпуске слушателей академий Красной Армии 5 мая 1941 года». Этот документ был реконструирован по воспоминаниям участников встречи в двух вариантах – русском и немецком. Русский вариант содержит несколько фрагментов: основной текст – речь – выступления в форме тостов. В частности, Сталин сказал: «Проводя оборону нашей страны, мы обязаны действовать наступательным образом. От обороны перейти к военной политике наступательных действий». «Не надо быть военным специалистом, – совершенно правильно указывает Г.Д.Алексеева, – чтобы понять, что речь идет о стратегии во время войны – от обороны к «наступательным действиям», а не о двух типах войн, как это трактуют некоторые современные историки, в том числе Невежин и Сахаров, который, надо заметить, никогда не изучал документов 1940-1941 годов» [2, с.124]. Кстати, глубоко невежественны современные фальсификаторы и в своем понимании морального духа советского общества накануне и во время Великой Отечественной войны. Свою продажную душу и раболепное преклонение перед Западом они пытаются перенести на воинов Красной Армии, изображая последних в виде неких недоразвитых субъектов, уголовников и штрафников, которые боятся и ненавидят Сталина и советскую власть, и воюют с немцами только из-за своей глупости и из-под палки. Так, писатель Владимир Войнович в своем пасквильном романе «Жизнь и необычайные приключения солдата Ивана Чонкина» изобразил советского воина маленьким, кривоногим, с красными ушами, глупым и забитым. А резонерствующий театрал Эльдар Рязанов назвал его «нормальным народным типом, подлинно русским характером». Отличие этих «деятелей искусства» от действительно выдающегося русского писателя Алексея Толстого с его «Русским характером» как раз представляет собой отличие настоящего писателя-патриота от литературных и театральных пакостников и фальсификаторов. Последним в силу их прозападного лакейства никогда не понять, что могут быть воины, которые способны на высочайший героизм и самопожертвование во имя свободы своей Родины. Знаменитый белорусский скульптор Валентин Занкович, автор главного памятника мемориального комплекса «Хатынь» в казематах Брестской крепости нашел потрясающую надпись, сделанную защитниками крепости, которая широкая общественность еще не знает. Это лаконичные, но обжигающие душу слова: «Нас было пятеро. Мы умрем за Сталина». Вот и вся правда о морально-психологической атмосфере советского общества во время войны. В этих словах весь смысл, дух Великой Отечественной войны, нашей отечественной истории: нравственность, патриотизм и героизм наших людей.

4. Подмена научных знаний об исторических фактах информацией, содержащейся в источниках. Подобный подход приводит к грубым ошибкам. И самая существенная из них – неправомерное отождествление информации, сведений, зафиксированных в документах, с научными знаниями об исторических фактах. Вторая ошибка – это включение информации в научный текст без ее анализа и критической оценки, т.е. без научного осмысления, в форме пересказа источника. Именно при таком подходе и осуществляется фальсификация истории даже помимо сознания самого исследователя. Чтобы этого не происходило, необходимо провести всесторонний анализ источника. Лишь только после всестороннего анализа информация, содержащаяся в источнике, превращается в научное знание, которое уже используется историком в процессе познания тех или других исторических событий. Научное знание, приобретенное в результате всестороннего анализа сведений, содержащихся в источнике, зачастую играет и верификационную роль в определении достоверности ранее полученных научных знаний.

5. Восприятие как высших достижений мировой исторической науки различных схем и моделей, которые либо не имеют к ней никакого отношения, либо фальсифицируют исторический процесс и его научное познание.

В частности, это касается и так называемой концепции тоталитаризма, которую нынешние фальсификаторы и просто недалекие историки положили в основу изучения отечественной истории ХХ века. Американский историк Стивен Коэн в своей книге «Переосмысливая советский опыт: политика и история с 1917 года», изданной на русском языке в 1986 году, констатировал: «Все советологические концепции, созданные вне подлинной истории, социологии, культуры и даже подлинной политики, получили наиболее полное воплощение в «тоталитарной модели» 1953-1956 гг.» [2, с.101]. Стивен Коэн признает, что эти исследования финансировались не только частными фондами (Рокфеллера, Карнеги), но и Министерством обороны, ЦРУ США. Кстати, советское Министерство обороны, КГБ такой деятельностью никогда не занимались, и в этом отношении американистика, англоведение в СССР приобретали иной тип развития в системе научных знаний, где история зарубежных стран освещалась более корректно, чем это имело место в западной советологии, в которой, по словам С.Коэна, антикоммунизм и антисоветизм стали источником и базой для появления «тоталитарной школы», модели тоталитаризма. Анализируя позиции авторов «тоталитарной школы» Коэн пришел к выводу, что «они стали отождествлять сталинскую Россию с гитлеровской Германией, советский коммунизм с нацизмом и т.д.» [2, с.102]. Вот откуда, оказывается, заимствовали сегодняшние доморощенные фальсификаторы свои убогие идейки об отождествлении Сталина с Гитлером и СССР с фашистской Германией. Из фашистской и западной реакционной историографии.

Важно отметить, что многие западные советологи полностью отвергли концепцию тоталитаризма, придя к выводу, что ее несоответствия и идеологические обертоны слишком очевидны и что единственная ее функция состоит в навешивании оскорбительных ярлыков на советскую систему правления. Как отметил американский историк М.Карпович, научные труды в США «слишком часто создавались в атмосфере лютой ненависти к нынешнему (советскому) русскому режиму».

Таким образом, заключает российский историк Г.Д.Алексеева, «заимствованный из американской советологии 1940-1960 гг. тоталитаризм и его многословное тиражирование в академической литературе 1990-2010 гг. стало свидетельством не только теоретической беспомощности появившихся противников советской власти и науки. По причине научного бессилия, нравственной деградации, предательства историки превратились в проповедников западных канонов, которые, потеряв научное содержание в США уже в 1960-е гг., в России 1990-х гг. стали играть идеологическую и политическую роль без какой-либо существенной научной перспективы» [2, с.103].

В 2015 году великое событие в нашем историческом календаре – 70-летие победы советского народа в Великой Отечественной войне над немецко-фашистскими захватчиками. В этом плане есть резон остановиться еще на некоторых фальсификациях, связанных с событиями Великой Отечественной войны.

Известно, что фальсификаторы, пытаясь дискредитировать великий подвиг наших народов в годы Великой Отечественной войны внедряли в массовое сознание, что руководство СССР всех пленных воинов Красной Армии записало в разряд предателей. Это была сознательная кощунственная фальсификация, когда Сталину приписывалось выражение – «у нас нет пленных, у нас есть предатели». На самом же деле эта фальсификация была сочинена в писательско-публицистической среде в 1956 году на волне критики культа личности Сталина. Эта фальсификация до сих пор имеет широкое хождение в публицистике, кинофильмах, художественной литературе.

Следует заметить, что в уголовном законодательстве СССР не фигурировало такое «преступление», как «сдача в плен». В статье 193 тогдашнего Уголовного кодекса РСФСР в перечне воинских преступлений было зафиксировано: «Сдача в плен, не вызывавшаяся боевой обстановкой» [3, с.251]. Само собой разумеется, что понятия «сдача в плен» и «сдача в плен, не вызывавшаяся боевой обстановкой» – не тождественные понятия. Поэтому не существовало никакого отождествления понятий «пленные» и «предатели». К предателям относились те, кто таковыми и являлись (полицаи, каратели, выпускники разведывательно-диверсионных школ, чиновники оккупационной администрации и т.п.), а к военнопленным такое определение в принципе не применялось.

Фальсификаторы Великой Отечественной войны сочинили также миф о неких «расстрельных списках», «расстрелах» части репатриантов, т.е. возвращающихся людей в СССР (военнопленных, остарбайтеров, перемещенных лиц, коллаборационистов) якобы сразу же по прибытии в советские сборные пункты. Это была также чудовищная ложь. Правда в том, что подавляющее большинство репатриантов не подвергалось не только никаким расстрелам, но даже и каким-либо репрессиям. Парадокс здесь состоял в том, что многие прямые пособники фашистов были удивлены тем, что в СССР с ними обошлись далеко не так сурово, как они ожидали.

Приведем показательный пример. Летом 1944 года при наступлении англо-американских войск во Франции к ним попадало в плен большое количество немецких солдат и офицеров, которых обычно направляли в лагеря на территории Англии. Вскоре выяснилось, что часть этих пленных не понимает по-немецки и что это, оказывается, бывшие красноармейцы, попавшие в немецкий плен и поступившие затем на службу в немецкую армию. По статье 193 тогдашнего Уголовного Кодекса РСФСР за переход военнослужащих на сторону противника в военное время предусматривалось только одно наказание – смертная казнь с конфискацией имущества. Англичане знали об этом, но, тем не менее, поставили в известность Москву об этих лицах и попросили забрать их в СССР. 31 октября 1944 года 9 907 репатриантов на двух английских кораблях были направлены в Мурманск, куда они прибыли 6 ноября. Среди этих репатриантов, перешедших на службу в немецкую армию, высказывались предположения, что их расстреляют сразу же на мурманской пристани. Однако официальные советские представители объяснили, что Советское правительство их простило и что они не только не будут расстреляны, но и вообще освобождаются от привлечения к уголовной ответственности за измену Родине. Больше года эти люди проходили проверку в спецлагере НКВД, а затем были направлены на 6-летнее спецпоселение. В 1952 году большинство из них было освобождено, причем в их анкетах не значилось никакой судимости, а время работы на спецпоселении было зачтено в трудовой стаж.

Антисоветчики-фальсификаторы, критикующие англо-американцев за выдачу Советскому Союзу этих людей, не улавливают одну тонкость в тогдашней психологии английских и американских политиков и чиновников. А эта тонкость заключена в том, что англичане и американцы вполне могли предполагать, что попавшие к ним в плен в немецкой военной форме бывшие красноармейцы, на самом деле являются людьми Сталина и выполняют какую-то роль в его политической игре. Отсюда, естественно, рождалось желание побыстрее очистить от них Западную Европу, а следовательно, вернуть их всех в СССР. «Позднее, – как отмечает крупный российский историк В.Н.Земсков, – англо-американцы в какой-то мере отрешились от указанных подозрений, но до этого успели выдать советским властям немало активных противников большевизма и Советской власти» [3, с.252].

Здесь надо иметь в виду и то обстоятельство, что приближающаяся победа СССР над фашистской Германией во многом способствовала гуманизации политики в отношении военнопленных и интернированных гражданских лиц вплоть до обещания непривлечения к уголовной ответственности тех из них, кто поступил на военную службу к противнику и совершил действия в ущерб интересам СССР в результате фашистского насилия и террора. Это относилось и к упомянутым репатриантам, прибывшим 6 ноября 1944 года в Мурманск, так как было известно, что они в массе своей поступили на военную службу к противнику, не выдержав пытки голодом и жестокого режима в немецких лагерях. Поэтому никак нельзя согласиться с распространенной фальсификацией в литературе и публицистике репатриации советских граждан исключительно как якобы нарушения прав человека или даже гуманитарного преступления. Абсолютно прав В.Н.Земсков, что «в основе этого процесса, несмотря на все имевшие место издержки и негативные явления, лежала естественная и волнующая эпопея обретения Родины большими массами людей, насильственно лишенных ее чужеземными завоевателями» [3, с.267].

И последнее, что необходимо отметить, говоря о фальсификации отечественной истории ХХ века. Это о так называемых сталинских репрессиях. Общественному сознанию постсоветских стран усиленно навязывается извращенное представление о том, что в СССР большинство населения пострадало от репрессий и, якобы, было ими запугано. Важно отметить, что разоблачение этой фальшивки было сделано не только объективными отечественными историками, но и западными. В этом плане представляют интерес выводы американского историка Роберта Терстона, издавшего в 1996 году монографию «Жизнь и террор в сталинской России. 1934-1941».

Вот к каким выводам на основе документальных фактов и статистик пришел американский историк. «Система сталинского террора в том виде, в каком она описывалась предшествующими поколениями западных исследователей, тогда не существовала. Влияние террора на советское общество в сталинские годы не было значительным, массового страха перед репрессиями в 1930-е годы в Советском Союзе не было. Репрессии имели ограниченный характер и не коснулись большинства советского народа. Советское общество, скорее, поддерживало сталинский режим, чем боялось его. Большинству людей сталинская система обеспечивала возможность продвижения вверх и участие в общественной жизни» [4].

Не надо быть специалистом, чтобы не признать абсолютную правильность выводов Роберта Терстона. Даже больше. Сложившаяся в довоенные годы социально-политическая система в сознании многомиллионных масс народа прочно ассоциировалась с идеалами справедливости, дружбы и прогресса. И советская цивилизация однозначно расценивалась подавляющим большинством наших граждан как самая гуманная и справедливая на всей нашей планете. И это было так в действительности.

Литература
1. Земсков, В.Н. О масштабах политических репрессий в СССР // Политическое просвещение. – М., 2012. – № 1.
2. Алексеева, Г.Д., Маныкин, А.В. Историческая наука в России XXI века / Г.Д.Алексеева, А.В.Маныкин. – М., 2011.
3. Земсков, В.Н. Народ и война: страницы истории советского народа накануне и в годы Великой Отечественной войны. 1938-1945 / В.Н.Земсков. – М., 2014.
4. Thurston, R. Life and Terror in Stalin’s Russia 1934-1941 / R.Thurston. – New Haven, 1996.

Автор: 
Лев КРИШТАПОВИЧ, доктор филосовских наук
Номер газеты: 

Добавить комментарий

CAPTCHA
Этот вопрос задается для того, чтобы выяснить, являетесь ли Вы человеком или представляете из себя автоматическую спам-рассылку.
2 + 9 =
Решите эту простую математическую задачу и введите результат. Например, для 1+3, введите 4.