![]() |
|
Модераторы: Poseidon, Snowy, bems, MetalFan |
![]()
|
|
| bems |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 3400 Регистрация: 5.1.2006 Репутация: 31 Всего: 88 |
Точно принадлежность файла можно определить только по сигнатуре в хедере - а вдруг чужой? Добавлено @ 17:50 И то не точно. Думаю добавить CRC -------------------- Обижено школьников: 8 |
|||
|
||||
| Snowy |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 11363 Регистрация: 13.10.2004 Где: Питер Репутация: 192 Всего: 484 |
Зачем. Просто создай своё персональное расширение для своих файлов.
Например '5123482835.ItsFileOfMyCoolProgram' Или в конце концов создай GUID и используй его, как собственное расширение. Файлов с расширением A8D329BD7C8B4E1DB88F3876B602EF64 точно не бывает. |
|||
|
||||
| bems |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 3400 Регистрация: 5.1.2006 Репутация: 31 Всего: 88 |
Уже сделал.
-------------------- Обижено школьников: 8 |
|||
|
||||
| Snowy |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 11363 Регистрация: 13.10.2004 Где: Питер Репутация: 192 Всего: 484 |
Главное, что в стандартных условиях большинство файлов сразу отсеится.
А в нестандартных - юзер сам виноват. Проверку нуно делать перед использованием конкретного файла. Проверять все - незачем. |
|||
|
||||
| Mechanic |
|
||||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 228 Регистрация: 5.5.2006 Где: Kharkov, Ukraine Репутация: 6 Всего: 7 |
Как бы ни ухищрялся, всегда найдётся изобретательный идиот, который сделает именно то, о чем ты не подумал. Проще в описании программы написать "в папке данных программы нельзя создавать / изменять / удалять / переименовывать файлы". Никто ведь Биллу не дотумкается выставить счет, если при удалении случайных файлов пакета Microsoft Office, тот случайно перестанет работать. А защитить файлы можно просто раздачей прав на папку (NTFS rules).
Не знаю. Если бы меня попросили реализовать нечто подобное, я бы полностью абстрагировался от этих "изобретательных идиотов", и сделал бы диапазон дат лога в его имени. Типа ГГГГММДДЧЧММСС_ГГГГММДДЧЧММСС.MyExt тогда бы поиск файлов был бы простым перебором всех имен. Просто в этом случае нужно было бы проверять корректность системных часов (да хоть при запуске), чтоб не было запусков "в прошлом". И уж если очень захотелось бы быть уверенным в целостности файла, то прикрутил бы к нему какой-нить хэш в конце (типа CRC, SHA1 etc, только чуть подкриптованных и измененных, чтоб отсеять и очень изобретательных идиотов --------------------
Tell me the extensions of the files You backup and I'll tell You who You are.. ©Mch |
||||
|
|||||
| bems |
|
||||||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 3400 Регистрация: 5.1.2006 Репутация: 31 Всего: 88 |
Используются на другой машине. Что, отправлять кучу лишнего, а там уже разбираться? Дорорговато...
Очень изобретательные еще что-нибудь придумают, но защититься от скопированного и переименованого моего же файла нужно. -------------------- Обижено школьников: 8 |
||||||
|
|||||||
| Mechanic |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 228 Регистрация: 5.5.2006 Где: Kharkov, Ukraine Репутация: 6 Всего: 7 |
Тогда нужно хэш тулить уже в имя файла. --------------------
Tell me the extensions of the files You backup and I'll tell You who You are.. ©Mch |
|||
|
||||
| bems |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 3400 Регистрация: 5.1.2006 Репутация: 31 Всего: 88 |
Спасибо, ребята.
Останавливаюсь на следующем: 1. Файлы называются ггггммддччммссс.gsrtrs5ysrwrevthh.ext где ггггммддччммссс время ПЕРВОГО сообщения в логе, а gsrtrs5ysrwrevthh выбирается во время сохранения 2. Вхедере оставляю и время первого и время последнего сообщения. 3. При чтении директории для выбора очередности обработки игнорирую все после первой точки 4. Отправляю на тачку админа файлы, в имени которых есть дата и время после указанных в запросе клиентской части проги. 5. Открываю файл, предшествующий по дате и времени (тех что в имени) первому отправленному и проверяю на частичное соответствие запросу. Если запрошенная клиентом дата где-то в середине этого файла, то отправляю и этот. Думаю, тема закрыта. Если есть замечания по поводу этой схемы, то прошу... Это сообщение отредактировал(а) bems - 27.5.2006, 16:06 -------------------- Обижено школьников: 8 |
|||
|
||||
| Mechanic |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 228 Регистрация: 5.5.2006 Где: Kharkov, Ukraine Репутация: 6 Всего: 7 |
По какому принципу? И есть ли фильтрация по именам до открытия файлов и чнения хедеров? Представим, я тупой юзверь, и запустил вот такую программу:
Админ асилит стока файлов? --------------------
Tell me the extensions of the files You backup and I'll tell You who You are.. ©Mch |
|||
|
||||
| Snowy |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 11363 Регистрация: 13.10.2004 Где: Питер Репутация: 192 Всего: 484 |
Просто нужно еще на стороне клиента проверять - правильный файл или нет.
|
|||
|
||||
| bems |
|
||||||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 3400 Регистрация: 5.1.2006 Репутация: 31 Всего: 88 |
админ - не знаю, сетка - с трудом
Это сообщение отредактировал(а) bems - 27.5.2006, 17:35 -------------------- Обижено школьников: 8 |
||||||
|
|||||||
| Mechanic |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 228 Регистрация: 5.5.2006 Где: Kharkov, Ukraine Репутация: 6 Всего: 7 |
Я ж совсем другое предлагал.. Предлагал ввести CRC в имя, чтоб валидность его можно было проверить, не открывая файл. Вот, накропал пример. Там использовал чуть измененный CRC32 - изменил сам полином, и начальное число. Плюс ещё данные XOR'ю ключом. Не думаю, что найдется у вас юзверь, что этот хаш сможет сгенерить без ковыринга в сорцах. Вот образцы валидных сгенеренных имен. 200605281950437127B0974C8.ext 2006052819505540079C9687D.ext 20060528195104150BF12C7CA.ext А по ходу нашел забойную книжу! Советую всем, кто хочет в CRC разобраться Ross N. Williams "Элементарное руководство по CRC алгоритмам обнаружения ошибок" Присоединённый файл ( Кол-во скачиваний: 3 )
FileNameValidator.zip 3,20 Kb--------------------
Tell me the extensions of the files You backup and I'll tell You who You are.. ©Mch |
|||
|
||||
| bems |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 3400 Регистрация: 5.1.2006 Репутация: 31 Всего: 88 |
Я тебя отлично понял
А что делать если имя мое, а содержимое левое? Я имею ввиду, что все равно придется проверять валидность содержимого на стороне клиента. А твой способ - как один из этапов я использую. За книжку и исходник огромное спасибо. И плюс -------------------- Обижено школьников: 8 |
|||
|
||||
| Mechanic |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 228 Регистрация: 5.5.2006 Где: Kharkov, Ukraine Репутация: 6 Всего: 7 |
Нема за що. Тема просто интересная.
Добавлено @ 21:25 --------------------
Tell me the extensions of the files You backup and I'll tell You who You are.. ©Mch |
|||
|
||||
![]()
|
| Правила форума "Delphi: Общие вопросы" | |
|
|
Запрещается! 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, MetalFan, bems, Poseidon, Rrader. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Delphi: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |