Ho un database Mysql con un'API ad esso legata per chiamare ed eseguire il codice PHP memorizzato in quel database. Sì, hai sentito bene, codice PHP memorizzato ed eseguito da un database Mysql. Quindi, questo è abbastanza serio dal punto di vista della sicurezza, e questo è il mio dilemma. Il tuo primo suggerimento potrebbe anche essere: "NO, cattivo!". Non temere, può essere fatto. Ci sono alcuni buoni motivi per farlo.
- Aumento della velocità di 40 volte (nessuna lettura HD)
- Iniezione delle dipendenze automatiche.
- Altri linguaggi di programmazione.
Sicurezza.
I risanamenti in ingresso "sembrano" essere la cosa più importante qui, e il mio filtro è di prim'ordine. SQL Injection sarebbe il tuo peggior incubo.
La mia domanda è questa: quando si esegue il codice live da un database, può essere difeso, può essere attaccato? Quali vettori di attacco potrebbero essere possibili? E come hai potuto difendere?
In sintesi, ho bisogno di una consulenza di esperti, Worst-Case, Best-Case, Fallo, non farlo. Sei pazzo, qualcosa.
UPDATE1: leggerò tutti i commenti più e più volte, The Truth Matters.
- Sto usando un cluster di percona mysql, si sta verificando una velocità misurabile (memorizzata nella ram)
- Il versioning è facile (e integrato) Hai un tavolo con L (lingua) FunctionName Vars Deps RequiredVars VERSION # etc ... ecc.
- Vorrei aggiungere per il livello di interesse, che Un'applicazione potrebbe essere basata principalmente su interi, nel qual caso l'input può essere disinfettato mediante il casting su (int) (IE. $ num = (int) $ _ GET ['s'];)
- Accolgo con favore idee, suggerimenti e argomenti. Credo che questo ostacoli molte barriere mentre ne raggiungiamo di nuove e ora sono completamente disposto e pre-dedicato a capirlo, quella parte è un affare fatto; O, l'umanità! Ma credo che questo possa avere successo.
- Un altro vantaggio aggiunto è la neutralità della lingua, dal momento che memorizzo il mio codice in un database, etichettando un codice come PHP e uno come RUBY o PYTHON, ha seri usi. Nulla di un po 'di azione php-shellexec può rivelarsi bello (anche in questo caso, per quanto riguarda l'igienizzazione degli input quasi perfetta)
Continuerò ad aggiornare (ho un programma fitto di impegni, ma sarò il più attento possibile.)