Recentemente sono stato frequentato da messaggi di errore errati da mod_security. I suoi set di filtri coprono exploit PHP obsoleti e devo riscrivere le mie cose perché Wordpress & Co ha avuto bug anni fa.
Questo succede a qualcun altro?
Apache mod_security blocca le richieste HTTP potenzialmente pericolose prima che raggiungano le applicazioni (in particolare PHP). Utilizza vari set di filtri, principalmente basati su regex.
Quindi ho un bel provider di hosting condiviso, tecnicamente adatto e cose del genere. Ma questo mi ha infastidito:
Proprio la scorsa settimana ho dovuto cambiare il nome di un parametro &src=in una delle mie app perché mod_security blocca QUALSIASI richiesta con quello. Non ho cercato i dettagli, ma questa regola di filtro stava impedendo la sfruttabilità di un'altra app che non uso e di cui probabilmente non avevo mai sentito parlare. Tuttavia, ho dovuto riscrivere il mio codice (spesso è sufficiente rinominare il parametro per ingannare mod_security) che non aveva nulla a che fare o in comune con quello!
E oggi, un regex sciocco blocca le presentazioni, perché volevo inviare il codice di esempio php. Dato, questa è la roba semplice da cui mod_security è lì per proteggere. Ma non credo che mod_security sia in grado di rilevare codice seriamente offuscato, e si spegne semplicemente a frammenti di php ovvi (e in questo caso totalmente banali).
Fondamentalmente sto venendo penalizzato da mod_security perché altre persone hanno rilasciato app soggette a bug. (Non sto dicendo che le mie app sono ultra sicure - sono piuttosto diffidente nei confronti della sicurezza, ma non
ho pretese iperboliche.) Ho già chiesto al mio provider di disabilitarla comunque, i vantaggi sono IMO troppo piccoli e per le mie app.
Cosa ne pensi? Mod_security ha molto senso al di fuori dell'hosting WP? O è davvero solo un mucchio di liste nere di bug di sicurezza passati? Quali delle sue regole sono effettivamente utili? Esiste un equivalente a livello di applicazione?
<?php doBadStuff(); ?>non eseguirà quella funzione. (A meno che tu non usievalovviamente ciò che è male comunque.)