CSS Валидация загружаемых моделей.

DIGIUS1337

Участник
Сообщения
6
Реакции
0
Доброго времени суток, для своего сервера в качестве челленджа начал писать интернет магазин с установкой всего добра с сайта прямо на сервер CSS.
Пока получается сильно модифицированная версия Game CMS.
Поскольку сайт буду использовать для быстрой скачки, то и есть смысл сразу грузить на веб сервер: карты, sound, materials, models.
Всё это добро веб-сервер сам пакует в .bz2, и синхронит с файлами игрового сервера.
Тут непонятно что на меня нашло, и я решил разрешить игрокам самим в случае покупки скина на 30 дней загружать абсолютно любую модель для CSS в формате архива.
Ну собственно как и все нормальные люди я фильтрую все входящие файлы на предмет чтоб они не положили как игровой сервер, так и веб.
Пока PHP скрипт для валидации целостности только количества файлов и их наличия с корректным расположением в режиме "песочницы" без доступа вырос до 150 строк и напоминает лютую лапшу.
Вопрос к уважаемым знатокам: есть ли под линукс готовые утилиты которые смогут все это сделать и выдать вменяемый результат в случае ошибок, хотя-бы частично проверить корректность файлов:

  • .mdl
  • .vtf
  • .vtx
  • .phy
  • .vvd
  • .vmt
  • .vtx
  • .vtf
Дабы не упаковать сервер одной кривой загрузкой случайной или специальной.
Заранее спасибо.
 

Alejandro

Участник
Сообщения
7
Реакции
1
Может быть тебе поможет md5sum? Для сверки целостности файлов на клиенте и сервере.
 

DIGIUS1337

Участник
Сообщения
6
Реакции
0
Может быть тебе поможет md5sum? Для сверки целостности файлов на клиенте и сервере.
Вы поняли не совсем так, допустим человек скачал архив с моделькой игрока которая ему понравилась, как проверить её хотя-бы на техническую корректность после загрузки чтоб она сервер не положила. Про хеши файлов я знаю и синхронизация давно работает.
 

Dragokas

Меценат
Сообщения
152
Реакции
126
Как минимум, проверять:
- минимальный размер файлов (хотя бы != 0)
- максимальный размер файлов
- заголовок (например, для .mdl - первые 4 байта это "IDST" (49 44 53 54)).

На счёт их внутренней валидности в целом, тут смотря что у вас за возможности у сервера, и какая ОС.
Под винду, можно было бы попробовать, как вариант, декомпильнуть модельку в автоматическом режиме
и если операция прошла без критических ошибок, значит моделька валидна.
Из инструментария, Mdldecompiler (не юзал), Crowbar (юзал, но не в курсе, умеет ли она работать с ключами ком. строки).
Ну и это только для models/ Проверять materials/ придётся чем-то отдельным.
 

DIGIUS1337

Участник
Сообщения
6
Реакции
0
Как минимум, проверять:
- минимальный размер файлов (хотя бы != 0)
- максимальный размер файлов
- заголовок (например, для .mdl - первые 4 байта это "IDST" (49 44 53 54)).

На счёт их внутренней валидности целиком, тут смотря что у вас за возможности у сервера, и какая ОС.
Под винду, можно было бы попробовать, как вариант, декомпильнуть модельку в автоматическом режиме
и если операция прошла без критических ошибок, значит моделька валидна.
Из инструментария, Mdldecompiler (не юзал), Crowbar (юзал, но не в курсе, умеет ли она работать с ключами ком. строки).
Ну и это только для models/ Проверять materials/ придётся чем-то отдельным.
Спасибо за ответ.
Ось это однозначно линукс.
Но я так понял это идея изначально не очень живая, поскольку могут загрузить уменьшенную версию скина, и много чего ещё что будет давать приемущество в игре.
Crowbar я чекнул но судя по исходникам он написан на vb.net. А как известно бейсик не очень дружит с линуксом тем более в консольном режиме который я использую для запуска всего этого добра.
Можно конечно заморочиться с переписыванием софта, по изменению размера всех загружаемых моделей, под один формат. Но как по мне этого слишком много для простой системы покупок через сайт без ручной установки. Проще тогда накачать паки с моделями, сделать их все корректными, проверить и предлагать на выбор.
 
Сверху