Rozbitý dotblue/nette-webimages s bezpečností aktualizací Nette
- kajinek32
- Člen | 35
Ahoj,
jak tu před nějakou dobou proběhla vlna
aktualizace všech Nette verzí 2.X a 3.X, která opravovala chybu v Micro
presenteru, přestal mi na několika webech fungovat doplněk dotblue/nette-webimages
(GitHub).
Doplněk se už nevyvíjí, a mám ho u klientů, kteří nezaplatí větší aktualizaci všech komponent, tak se to snažím hotfixnout.
Řešení a)
upravit si v Nette/Application
MicroPresenter.php:71 tak, aby to místo Closure bralo i instanci
(nesystémové, možná i bezpečnostně špatné?)
tedy z
if (!$callback instanceof \Closure){
na
if (!$callback instanceof \Closure && !$callback instanceof \DotBlue\WebImages\Route) {
Řešení b)
Nějak upravit dotblue/nette-webimages, aby jeho volání MicroPresenteru bylo
instancí Closure?
(tomu nerozumím, jen odhaduju, jestli to nějak takhle nejde)
Řešení c)
Samozřejmě jiný doplněk na zmenšování obrázků on the fly, ale to je
opět otázka času předělání v kódu…
Napadá vás, co s tím? :)
Díky za rady.
- David Grudl
- Nette Core | 8218
Upravil jsem MicroPresenter tak, aby bral jakýkoliv objekt s metodou __invoke.
(Ten fix s Closure byl především kvůli zmatení posluchačů.)
- kajinek32
- Člen | 35
David Grudl napsal(a):
Upravil jsem MicroPresenter tak, aby bral jakýkoliv objekt s metodou __invoke.
(Ten fix s Closure byl především kvůli zmatení posluchačů.)
Aha, to je zajímavé, díky.
Ale koukám, že tahle úprava je jen v aktuální verzi, nikoliv v těch
legacy (2.4.16), že?…
- David Grudl
- Nette Core | 8218
Co ti na tom padá? Že neprojde [$this, ‚foo‘] je v pořádku, neřešilo se tu, aby tohle prošlo.
- kajinek32
- Člen | 35
David Grudl napsal(a):
Co ti na tom padá? Že neprojde [$this, ‚foo‘] je v pořádku, neřešilo se tu, aby tohle prošlo.
Tak pardon, mně to projde tou podmínkou a spadlo na řádku 75 a bylo to tím, že jsem opravil jen ten jeden řádek. Už je to ok…
Nicméně to řešení od @Kori funguje na webech od php 7.1 dobře, takže jsem to dál neřešil…
Editoval kajinek32 (11. 11. 2020 12:52)