Рейтинг:0

Подставить строку в метку времени

флаг cn

я хочу использовать mod_substitute или же mod_ext_filter для замены строки текущей меткой времени в миллисекундах.

Я пробовал до сих пор, но это не работает.

Замените "1s/myString/&$(дата +"%T.%3N")/"

ExtFilterDefine testfilter mode=output intype=text/html cmd=/bin/echo "$(sed -E "1s/myString/&$(date +"%T.%3N")/")"

У кого-нибудь есть идея запустить это? Тоже думал, совместить с ssi, но тоже не работает.

Рейтинг:0
флаг cn

От чтения в mod_substitute документация, я не могу найти ни одной ссылки на то, почему вы думаете, что это будет работать с выполнением внешнего процесса (или разветвлением оболочки или чем-то в этом роде). Так что я бы не считал этот маршрут жизнеспособным.

mod_ext_filter, с другой стороны, кажется адаптированным к тому, что вы хотите сделать. Однако, цитируя его документация:

Этот механизм фильтрации намного медленнее, чем использование фильтра, специально написанного для Apache API и работающего внутри серверного процесса Apache.

Итак, на вашем месте я бы подумал об использовании динамического языка, такого как PHP (который изначально был написан именно для этого случая использования), или, в конечном итоге, написать очень маленькую программу на C, чтобы делать то, что вы хотите, так как в конечном итоге это будет слишком много. быстрее, и это не слишком сложно.


Теперь, если вы хотите настаивать на своей идее, не используйте /бен/эхо. Замена, которую вы написали в "$(sed -E "1s/myString/&$(дата +"%T.%3N")/")" требует оболочки и /бен/эхо не будет порождать один. Поэтому нужно либо писать скрипт (решение, которое я бы порекомендовал), либо хотя бы звонить /бин/ш (или же /бин/баш если вы так склонны) с соответствующими аргументами: -c 'var="$(дата +"%T.%3N")"; sed -E "1s/myString/&$var/"'.

Это действительно взломано, и я поддерживаю PHP-скрипт, или программа на C была бы проще в долгосрочной перспективе, но каждому свое.

the_floor avatar
флаг cn
@ 7heo.tk: большое спасибо. Еще немного информации, почему я хочу это сделать. Моя цель — не дать хакерским инструментам, таким как WPSCAN, определить мой номер версии и дополнительную информацию. Этот инструмент сканирует множество файлов css и js. Итак, я хочу использовать этот фильтр, чтобы добавить простую метку времени в миллисекундах, непосредственно перед тем, как ввод файла будет доставлен в браузер и т. д. Таким образом, я могу изменить хэш md5, а WPSCAN не сможет получить мои данные. Не могли бы вы дать мне более подробную информацию, чтобы сделать это в php? Я не хочу постоянно менять файл, я хочу просто добавить дополнительный вывод, если кто-то или что-то отправит запрос к этим файлам.
the_floor avatar
флаг cn
Я попытался последовать вашему совету: но после добавления вашего кода я не могу перезапустить сервер apache - я получаю сообщение об ошибке. ``ExtFilterDefine testfilter mode=output intype=text/html cmd="/bin/bash -c 'var="$(date +"%T.%3N")"; sed -E "1s/Ninja/&$ вар/""``` ```SetOutputFilter testfilter```. Я поставил неправильные кавычки?
флаг cn
Да, я считаю, что эти цитаты неверны. Учитывая количество цитирований, я лично поместил бы все это в сценарий и просто сделал бы его исполняемым для всех (`chmod a+x`), а затем указал полный путь (что-то вроде [`/usr/local/ bin/myapachefilter`](http://paste.debian.net/hidden/b381a2c0/)) в поле `cmd`. С другой стороны, нам следует избегать обсуждения в комментариях, поэтому, может быть, нам стоит начать сеанс чата?

Ответить или комментировать

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