Перейти к содержимому
Калькуляторы

Опубликована Процедура блокировки некошерной инфо

Долго мучился так как перла не знаю совсем!

 

У меня возникла проблема в том, что запрещено делать копию контейнера ключа.

 

Поступил я следующим образом:

Создал ключ как описано тут: http://molet.ru/vyigruzhaem-reestr-zapreshhennyih-saytov-s-sayta-roskomnadzora/

 

После залил этот файл на сервер и переименовал в req.xml.sig

а так же req_template.xml

 

В файле zapret.pl закомментировал строку:

 

281: `openssl smime -sign -in $req_file -out $sig_file -binary -signer $dir/cert.pem -outform DER`;

 

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

 

Сейчас выскакивает ошибка вот такая:

Wide character in print at ./zapret.pl line 178.
Can not get result: запрос обрабатывается
Query pending ( code: 0 )

 

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

 

Спасибо за скрипт, отличная работа!

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

2alibek

если не трудно, выложи структуру таблички REQUESTS

 

2Wingman

у меня почему-то Ваш скрипт, очень часто выдает ошибку

 

Can't get lastDumpDateEx!

 

три раза запускаю, 2 точно вываливается с ошибкой, а то и все 3 раза.

 

кто знает хорошо перл, подскажите плз.

можно сделать проверку вот тут

sub getLastDumpDate
{
   my $soap= SOAP::Lite->service($api_url);
   my @result;
   eval{ @result = $soap->getLastDumpDateEx(); };
   if( $@ ) {
print "Error while getLastDumpDate: ".$@."\n";
exit;
   }
   if( !defined($result[0]) || $result[0] !~ /^(\d+)$/ ) {
print "Can't get lastDumpDateEx!\n";
print Dumper(@result);
exit;
   } else {
my $stamp = $result[0] / 1000;
return $stamp;
   }
}

 

что бы не писалась ошибка, а повторно выполнялся запрос.

пробовал так

sub getLastDumpDate
{
   my $soap= SOAP::Lite->service($api_url);
   my @result;
   eval{ @result = $soap->getLastDumpDateEx(); };
   if( $@ ) {
print "Error while getLastDumpDate: ".$@."\n";
exit;
   }
   while( !defined($result[0]) || $result[0] !~ /^(\d+)$/ ) {
print "Can't get lastDumpDateEx!\n";
print Dumper(@result);
#	exit;
$soap= SOAP::Lite->service($api_url);
@result = $soap->getLastDumpDateEx();
   } 
my $stamp = $result[0] / 1000;
return $stamp;

}

но тогда другие ошибки сыпятся но в итоге все отрабатывает. как правильно это сделать?

 

./zapret.pl
DEBUG: Last dump date:  1409819409
DEBUG: Last action:     getLastDumpDate
DEBUG: Last code:       125f3577d4c98cdd47a2487d3742ad26
DEBUG: Last result:     old
DEBUG: Checking dump date...
Can't get lastDumpDateEx!
Subroutine _call redefined at (eval 111) line 50.
Subroutine OperatorRequestService::want_som redefined at (eval 111) line 92.
Subroutine AUTOLOAD redefined at (eval 111) line 109.
Subroutine OperatorRequestService::getResult redefined at (eval 111) line 107.
Subroutine OperatorRequestService::getLastDumpDate redefined at (eval 111) line 107.
Subroutine OperatorRequestService::sendRequest redefined at (eval 111) line 107.
Subroutine OperatorRequestService::getLastDumpDateEx redefined at (eval 111) line 107.
Can't get lastDumpDateEx!
Subroutine _call redefined at (eval 118) line 50.
Subroutine OperatorRequestService::want_som redefined at (eval 118) line 92.
Subroutine AUTOLOAD redefined at (eval 118) line 109.
Subroutine OperatorRequestService::getLastDumpDateEx redefined at (eval 118) line 107.
Subroutine OperatorRequestService::sendRequest redefined at (eval 118) line 107.
Subroutine OperatorRequestService::getResult redefined at (eval 118) line 107.
Subroutine OperatorRequestService::getLastDumpDate redefined at (eval 118) line 107.
DEBUG: RKN last dump date: 1409817720
DEBUG: lastDumpDate <= prev. dump date. Exiting.

Изменено пользователем starchik

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

если не трудно, выложи структуру таблички REQUESTS

Да там все просто.

CREATE TABLE IF NOT EXISTS `REQUESTS` (
 `ID` int(10) unsigned NOT NULL AUTO_INCREMENT COMMENT 'Идентификатор запроса.',
 `CLOCK` datetime NOT NULL COMMENT 'Дата и время запроса.',
 `TIMESTAMP` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT 'Дата и время запроса.',
 `SOURCE` varchar(200) NOT NULL COMMENT 'Кем и откуда запущено.',
 `STAGE` enum('INIT','SEND','RECEIVE','DONE','FAIL','SKIP') NOT NULL COMMENT 'Текущая стадия запроса.',
 `STAGE_COUNT` int(10) unsigned DEFAULT NULL COMMENT 'Количество обращений к сервису.',
 `STAGE_TIME` int(10) unsigned DEFAULT NULL COMMENT 'Общая длительность обращений к сервису.',
 `LAST_DATE` datetime DEFAULT NULL COMMENT 'Дата и время последнего обновления выгрузки из реестра.',
 `SEND_FILE` blob COMMENT 'Содержимое запроса.',
 `SEND_SIGN` blob COMMENT 'Содержимое открепленной подиси запроса.',
 `SVC_RESULT` enum('true','false') DEFAULT NULL COMMENT 'Результат обработки запроса.',
 `SVC_COMMENT` text COMMENT 'Комментарий к результату обработки запроса.',
 `SVC_SESSION` varchar(80) DEFAULT NULL COMMENT 'Строка-идентификатор, используемая для дальнейшей обработки запроса.',
 `RES_RESULT` enum('true','false') DEFAULT NULL COMMENT 'Результат обработки ответа сервиса.',
 `RES_COMMENT` text COMMENT 'Комментарий к результату обработки ответа сервиса.',
 `RES_DATA` longblob COMMENT 'ZIP-архив с выгрузкой из реестра (хранится только для последних запросов).',
 PRIMARY KEY (`ID`),
 KEY `CLOCK` (`CLOCK`),
 KEY `TIMESTAMP` (`TIMESTAMP`),
 KEY `STAGE` (`STAGE`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='Запросы ЕРДИ (единый реестр доменных имен).\r\n\r\nСервис не дает синхронного ответа на запрос, поэтому запросы могут автоматически повторяться через некоторое время (откладываться). В поле STAGE фиксируется текущая стадия запроса, в полях STAGE_COUNT и STAGE_TIME фиксируется количество повторных обращений и общее время.\r\n';

В БД сохраняются запросы (файл и подпись) и ответы, поэтому база раздувается быстро, нужно автоматическую чистку настраивать.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Коллеги, позволю себе еще раз порекламировать свой софт для работы с реестром.

Взять тут: https://github.com/apofiget/some_stuff

Написано на Erlang, работает как сервис(не надо запиливать в cron), отдает полученное по HTTP в виде JSON/CSV/XML/ZIP.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

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

 

Спасибо за скрипт, отличная работа!

Сделал, zapret.conf: form_request = 1/0

 

что бы не писалась ошибка, а повторно выполнялся запрос.

пробовал так

Сделал три итерации при ошибке получения

Почему дата дампа не отдаётся - не могу сказать: у меня ни разу такого не было -> не могу подебажить

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Сделал, zapret.conf: form_request = 1/0

 

Спасибо! сейчас просто идеально!

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Сделал три итерации при ошибке получения

Почему дата дампа не отдаётся - не могу сказать: у меня ни разу такого не было -> не могу подебажить

 

спасибо, но теперь сыпятся другие ошибки

./zapret.pl
DEBUG: Last dump date:  1409811413
DEBUG: Last action:     getLastDumpDate
DEBUG: Last code:       6cf3450a9364ff77e816bf0731d094c92
DEBUG: Last result:     old
DEBUG: Checking dump date...
Soap result not defined, retrying...
Subroutine _call redefined at (eval 111) line 50.
Subroutine OperatorRequestService::want_som redefined at (eval 111) line 92.
Subroutine AUTOLOAD redefined at (eval 111) line 109.
Subroutine OperatorRequestService::getResult redefined at (eval 111) line 107.
Subroutine OperatorRequestService::getLastDumpDate redefined at (eval 111) line 107.
Subroutine OperatorRequestService::sendRequest redefined at (eval 111) line 107.
Subroutine OperatorRequestService::getLastDumpDateEx redefined at (eval 111) line 107.
Soap result not defined, retrying...
Subroutine _call redefined at (eval 118) line 50.
Subroutine OperatorRequestService::want_som redefined at (eval 118) line 92.
Subroutine AUTOLOAD redefined at (eval 118) line 109.
Subroutine OperatorRequestService::getLastDumpDateEx redefined at (eval 118) line 107.
Subroutine OperatorRequestService::getLastDumpDate redefined at (eval 118) line 107.
Subroutine OperatorRequestService::sendRequest redefined at (eval 118) line 107.
Subroutine OperatorRequestService::getResult redefined at (eval 118) line 107.
DEBUG: RKN last dump date: 1409853900
DEBUG: Last dump date > prev. dump date. Updating.
DEBUG: Sending request...
Subroutine _call redefined at (eval 143) line 50.
Subroutine OperatorRequestService::want_som redefined at (eval 143) line 92.
Subroutine AUTOLOAD redefined at (eval 143) line 109.
Subroutine OperatorRequestService::getLastDumpDateEx redefined at (eval 143) line 107.
Subroutine OperatorRequestService::sendRequest redefined at (eval 143) line 107.
Subroutine OperatorRequestService::getLastDumpDate redefined at (eval 143) line 107.
Subroutine OperatorRequestService::getResult redefined at (eval 143) line 107.
Wide character in print at ./zapret.pl line 369.
DEBUG: запрос принят
DEBUG: Updating lastDumpDate = 1409853900

их можно как-то убрать?

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

их можно как-то убрать?

 

Попробуйте в строке

#!/usr/bin/perl -w

убрать "-w", и ниже убрать "use warnings"

 

Вообще странная херня; если перл < 5.16, попробуйте обновить его

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

perl -v

This is perl 5, version 18, subversion 2 (v5.18.2) built for amd64-freebsd-thread-multi

Copyright 1987-2013, Larry Wall

Perl may be copied only under the terms of either the Artistic License or the
GNU General Public License, which may be found in the Perl 5 source kit.

Complete documentation for Perl, including FAQ lists, should be found on
this system using "man perl" or "perldoc perl".  If you have access to the
Internet, point your browser at http://www.perl.org/, the Perl Home Page.

 

прикол в том, что пока не было итераций таких ошибок не было...

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Subroutine _call redefined at (eval 143) line 50.

Subroutine OperatorRequestService::want_som redefined at (eval 143) line 92.

Subroutine AUTOLOAD redefined at (eval 143) line 109.

Subroutine OperatorRequestService::getLastDumpDateEx redefined at (eval 143) line 107.

Subroutine OperatorRequestService::sendRequest redefined at (eval 143) line 107.

Subroutine OperatorRequestService::getLastDumpDate redefined at (eval 143) line 107.

Subroutine OperatorRequestService::getResult redefined at (eval 143) line 107.

а покажите, какой кусок кода это генерит

опять похоже на путаницу в области видимости переменных

Изменено пользователем lcgc

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

млин, не могу понять че за фигня творится

сегодня получил новый ключ, импортировал по этой статье

https://www.evernote.com/shard/s185/sh/ceb0b021-47e7-4c61-ab43-bc6db27fe919/c535b6e5047ec69d304519fe81c2c9ac?noteKey=c535b6e5047ec69d304519fe81c2c9ac

 

в итоге получаю вот такое

 

root@zapret:/gost-ssl# ./zap.pl

DEBUG: Last dump date: 1409486700

DEBUG: Last action: getResult

DEBUG: Last code: 0379c621bd2858d1635dceddb62cbeb4

DEBUG: Last result: err

DEBUG: Sending request...

Wide character in print at ./zap.pl line 331.

DEBUG: запрос принят

root@zapret:/gost-ssl# ./zap.pl

DEBUG: Last dump date: 1409486700

DEBUG: Last action: sendRequest

DEBUG: Last code: b20502f237fd708c7d4826b9d124dbe3

DEBUG: Last result: send

DEBUG: Getting result...

Wide character in print at ./zap.pl line 174.

Can not get result: запрос обрабатывается

Query pending ( code: 0 )

root@zapret:/gost-ssl# ./zap.pl

DEBUG: Last dump date: 1409486700

DEBUG: Last action: sendRequest

DEBUG: Last code: b20502f237fd708c7d4826b9d124dbe3

DEBUG: Last result: send

DEBUG: Getting result...

Wide character in print at ./zap.pl line 174.

Can not get result: недействительный сертификат ЭП (информация по обратной связи для разрешения проблем приведена в Памятке оператору связи в разделе http://eais.rkn.gov.ru/tooperators/)

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

а покажите, какой кусок кода это генерит

опять похоже на путаницу в области видимости переменных

 

вот

my $req_file = $Config->{'PATH.req_file'} || die "PATH.req_file not defined.";
$req_file = $dir."/".$req_file;
my $sig_file = $Config->{'PATH.sig_file'} || die "PATH.sig_file not defined.";
$sig_file = $dir."/".$sig_file;
my $template_file = $Config->{'PATH.template_file'} || die "PATH.template_file not defined.";
$template_file = $dir."/".$template_file;
                                       <<== 50 строка
my $db_host = $Config->{'DB.host'} || die "DB.host not defined.";
my $db_user = $Config->{'DB.user'} || die "DB.user not defined.";
my $db_pass = $Config->{'DB.password'} || die "DB.password not defined.";
my $db_name = $Config->{'DB.name'} || die "DB.name not defined.";
.............
my $DBH;
my ($lastDumpDateOld, $lastAction, $lastCode, $lastResult);
dbConnect();
getParams();

my %NEW = ();
my %OLD = ();
my %OLD_IPS = ();
my %OLD_DOMAINS = ();
my %OLD_URLS = ();      <<== 92 строка
my %OLD_SUBNETS = ();
my %OLD_TRUE = ();
my %OLD_TRUE_IPS = ();
my %OLD_TRUE_DOMAINS = ();
my %OLD_TRUE_URLS = ();
my %OLD_TRUE_SUBNETS = ();
my %NEW_RECORDS = ();
my %NEW_DOMAINS = ();
my %NEW_URLS = ();
my %NEW_IPS = ();
my %NEW_SUBNETS = ();
my %EX_IPS = ();
my %EX_DOMAINS = ();
my %EX_SUBNETS = ();
                        <<== 107 строка
my $MAILTEXT = '';
my $MAIL_ADDED = '';     <<== 109 строка
my $MAIL_ADDED_IPS = '';
my $MAIL_REMOVED = '';
my $MAIL_REMOVED_IPS = '';
my $MAIL_EXCLUDES = '';
my $MAIL_ALONE = '';

debug("Last dump date:\t".$lastDumpDateOld);
debug("Last action:\t".$lastAction);
debug("Last code:\t".$lastCode);
debug("Last result:\t".$lastResult);

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

>> Subroutine AUTOLOAD redefined at (eval 143) line 109.

не, где-то глубже проблема

это не тот код явно

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Господа

а нет ни у кого примера как из этой базы выгрузить в sce2020 инфу для блокировок, а то свою не можем настроить как то

заранее спасибо

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Решил переделать свой парсер.

В процессе возник вопрос: каждая запись content имеет свой id. Описанные в этом id url, ip и прочее могут изменятся или же вся секция c конкретным id удаляется из реестра и в случае изменения создается новая?

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Решил переделать свой парсер.

В процессе возник вопрос: каждая запись content имеет свой id. Описанные в этом id url, ip и прочее могут изменятся или же вся секция c конкретным id удаляется из реестра и в случае изменения создается новая?

я бы предпочёл быть готовым к любым пакостям новаторским идеям со стороны "авторов"

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Решил переделать свой парсер.

В процессе возник вопрос: каждая запись content имеет свой id. Описанные в этом id url, ip и прочее могут изменятся или же вся секция c конкретным id удаляется из реестра и в случае изменения создается новая?

Я не могу дать пруфов, но я видел оба примера.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

В процессе возник вопрос:

Если запись исключается, а потом включается снова (удалили контент, потом снова залили), то id будет новым. Если просто дополнение (добавили/изменили ip) то id не измениться.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Народ, случилось так что мы не можем получить реестр,

подскажите телефон кому звонить у них есть тех поддержка.

Нужно срочно.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Народ, случилось так что мы не можем получить реестр,

подскажите телефон кому звонить у них есть тех поддержка.

Нужно срочно.

А почему не получается получить?? ЭСП может кончилось?

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Из ленты "Пиратской партии" прилитело:

Ответственность за ошибочную блокировку ресурсов, не содержащих запрещенную к распространению информацию, судьи возложили на интернет-провайдеров.

Так что если кто не умеет по страницам блокировать - надо строчно учиться.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Из ленты "Пиратской партии" прилитело:

Ответственность за ошибочную блокировку ресурсов, не содержащих запрещенную к распространению информацию, судьи возложили на интернет-провайдеров.

Так что если кто не умеет по страницам блокировать - надо строчно учиться.

А как же блокировка secured ресурсов и нововведенная блокировка подсетей? :)

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

А вот и узнаем. Я так понял, КС явно указал, кому претензии предъявлять, если что не так заблокировано. И другая рука Надзора теперь просто обязана среагировать, если написать заявление о том, что провайдер чего-нибудь не то блокирует.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

А вот и узнаем. Я так понял, КС явно указал, кому претензии предъявлять, если что не так заблокировано. И другая рука Надзора теперь просто обязана среагировать, если написать заявление о том, что провайдер чего-нибудь не то блокирует.

Ну как бы в РФ законы и реальность несколько разделены, поэтому поведение РКН в случае подачи жалобы непредсказуемо.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Не надо на заглушках писать: Этот сайт заблокирован. А указывать точнее: Данный IP заблокирован.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Гость
Ответить в тему...

×   Вставлено в виде отформатированного текста.   Вставить в виде обычного текста

  Разрешено не более 75 смайлов.

×   Ваша ссылка была автоматически встроена.   Отобразить как ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставить изображения напрямую. Загрузите или вставьте изображения по ссылке.