Puncte:0

Înlocuiți un șir în marcaj temporal

drapel cn

vreau sa folosesc mod_substitute sau mod_ext_filter pentru a înlocui un șir cu marcajul de timp curent în milisecunde.

Am incercat pana acum, dar nu merge.

Înlocuiește „1s/myString/&$(data +”%T.%3N”)/”

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

Are cineva idee să pună în funcțiune asta? Mă gândeam și eu la, să-l combin cu ssi, dar nici să nu funcționeze.

Puncte:0
drapel cn

Din lectură cel mod_substitute documentație, Nu găsesc o singură referință cu privire la motivul pentru care ați crede că ar funcționa cu executarea unui proces extern (sau bifurcarea unui shell sau orice altceva de acest fel). Așa că nu aș considera că acest traseu este unul viabil.

mod_ext_filter, pe de altă parte, pare adaptat la ceea ce vrei să faci. Totuși, ca să citez documentația acestuia:

Acest mecanism de filtrare este mult mai lent decât utilizarea unui filtru care este scris special pentru API-ul Apache și rulează în interiorul procesului serverului Apache

Deci, dacă aș fi în locul dvs., m-aș gândi să folosesc un limbaj dinamic, cum ar fi PHP (care a fost scris inițial pentru acest caz de utilizare), sau, în cele din urmă, să scriu un program C foarte mic pentru a face ceea ce doriți, deoarece ar ajunge mult mai repede și nu este prea greu.


Acum, dacă vrei să persistezi cu ideea ta, nu folosi /bin/echo. Înlocuirea în care ai scris "$(sed -E "1s/myString/&$(data +"%T.%3N")/")" necesită o coajă și /bin/echo nu va genera unul. Prin urmare, trebuie fie să scrieți un script (soluție pe care o recomand), fie cel puțin să sunați /bin/sh (sau /bin/bash dacă sunteți atât de înclinat) cu argumentele potrivite: -c 'var="$(data +"%T.%3N""); sed -E "1s/myString/&$var/"'.

Este cu adevărat hacky, iar eu mențin un script PHP sau un program C ar fi mai simplu pe termen lung, dar pentru fiecare a lui.

the_floor avatar
drapel cn
@ 7heo.tk: mulțumesc mult. Mai multe informații, de ce vreau să o fac. Scopul meu este să împiedic instrumentele hackerilor precum WPSCAN să-mi detecteze numărul versiunii și mai multe informații. Acest instrument scanează multe fișiere css și js. Așa că vreau să folosesc acest filtru, pentru a adăuga un simplu marcaj de timp în milisecunde, chiar înainte ca fișierul de intrare să fie livrat în browser etc. În acest fel, pot schimba hash-ul md5 și WPSCAN nu poate obține detaliile mele. Imi poti da mai multe detalii, sa o fac in php? Nu vreau să schimb permanent fișierul, vreau doar să adaug niște rezultate suplimentare, dacă cineva sau ceva trimite o solicitare la aceste fișiere.
the_floor avatar
drapel cn
Am încercat să urmez sfatul tău: dar după ce am adăugat codul tău, nu pot reporni serverul apache - primesc o eroare. ```ExtFilterDefine testfilter mode=output intype=text/html cmd="/bin/bash -c 'var="$(date +"%T.%3N")"; sed -E "1s/Ninja/&$ var/""``` ```SetOutputFilter testfilter```. Am setat ghilimele greșit?
drapel cn
Da, cred că aceste citate sunt greșite. Având în vedere cantitatea de citate, personal aș pune toate acestea într-un script și aș seta doar scriptul la executabil pentru toate (`chmod a+x`), apoi aș pune calea completă (ceva de genul [`/usr/local/ bin/myapachefilter`](http://paste.debian.net/hidden/b381a2c0/)) în câmpul `cmd`. În altă ordine de idei, ar trebui să evităm să discutăm în comentarii, așa că poate ar trebui să începem o sesiune de chat?

Postează un răspuns

Majoritatea oamenilor nu înțeleg că a pune multe întrebări deblochează învățarea și îmbunătățește legătura interpersonală. În studiile lui Alison, de exemplu, deși oamenii își puteau aminti cu exactitate câte întrebări au fost puse în conversațiile lor, ei nu au intuit legătura dintre întrebări și apreciere. În patru studii, în care participanții au fost implicați în conversații ei înșiși sau au citit transcrieri ale conversațiilor altora, oamenii au avut tendința să nu realizeze că întrebarea ar influența – sau ar fi influențat – nivelul de prietenie dintre conversatori.