Corsi on-line
Newsletter:
  • Seguici su Facebook
  • Seguici su Twitter
  • Seguici su Google+
  • Seguici via RSS
  • Seguici col tuo Smartphone

Monkey Patching in Ruby

In questo post voglio presentarvi una tecnica per il coding tanto diffusa in Ruby quanto pericolosa per le applicazioni che la presentano all’interno del proprio sorgente; questa tecnica prende il nome di Monkey Patching, essa consiste in pratica nell’estendere o modificare il codice di runtime di un linguaggio dinamico, ad esempio un metodo, una funzione o un attributo senza alterare il codice originale. Questa procedura è disponibile in molti linguaggi per la programmazione e lo sviluppo, in PHP è presente dalla versione 5.3.x.

Ruby

Ecco un semplice esempio di Monkey Patching in Ruby:

class Array
  def sum
    inject {|sum, x| sum + x }
  end
end

In pratica il codice presenta la riapertura di una classe in cui inserire una modifica “al volo” in modo che “array” implementi il metodo “sum”; il Monkey Patching viene spesso utilizzato per correggere “alla buona” dei difetti che determinano malfunzionamenti nell’espansione delle API, sovrascrivere funzioni di libreria o metodi delle classi dopo averli importati è però pericoloso proprio perché poter riaprire le classi in qualsiasi momento le espone facilmente ad attacchi, per questo il Monkey Patching è generalmente il primo fattore ricercato dai cracker per creare danni

Un interessante (e recente) articolo per approfondire.

Post correlati

Nessun post correlato

I più letti del mese
Tematiche
Annunci

Mr.Webmaster

Pubblicità
Chi Siamo
Contattaci
Collabora
Note Legali
© 2003 - 2012 Mr.Webmaster - Il portale dei Webmaster Italiani - Tutti i diritti riservati | Powered by IKIweb Internet Media S.r.l. - PIVA 02848390122