Back to top

Autore Topic: Dubbio su sanificazione input!  (Letto 3048 volte)

Offline ndomiano

  • Nuovo arrivato
  • *
  • Post: 43
    • Mostra profilo
Dubbio su sanificazione input!
« il: 25 Set 2013, 17:43:42 »
Penso sia l'argomento più trattato sul web e proprio per questo che ho una confusione assurda!
Se qualche utente paziente potesse darmi una mano ben venga.

PHP 5.4 + Joomla 2.5.14
Sto terminando il mio componente e sto cercando di avere molta cura e attenzione su eventuali bug (SQL INJECTION ).
I campi che io richiedo in tutto il componente sono:
- numeri 0-9 in cui effettuo INT (UINT)
- variabili testuali in cui effettuo il controllo == (esempio if ($action!='save') return; )
- numeri di telefono (in cui non posso effettuare l'int dato che mi esce fuori un numero assurdo)
 - codici alfanumerici (AA99CCDD) di lunghezza prestabilita
 - 1 campo HTML libero

legenda : campi in rosso: le mie paure | campi in verde: quelli che penso siano sicuri al 100%

ho un pò di timore su come trattare questi dati, premetto che effettuo l'escape e il cast degli INT nella query ma per altri campi (quelli in rosso) non so come comportarmi, è sufficiento un preg_match?

Grazie anticipatamente.



mau_develop

  • Visitatore

Offline ndomiano

  • Nuovo arrivato
  • *
  • Post: 43
    • Mostra profilo
Re:Dubbio su sanificazione input!
« Risposta #2 il: 01 Ott 2013, 17:54:58 »
http://docs.joomla.org/Retrieving_request_data_using_JInput
Grazie per la dritta, uso jinput ma ho enromi difficoltà riguardo i dbquote, escape ecc.. per esempio ora che voglio salvare html puro nel db , utilizzando:
$jinput->get('message', null,'HTML');
oppure
$jinput->get('message', null,'RAW');
o qualunque altro, l'html mi viene tagliato fuori,

mau_develop

  • Visitatore
Re:Dubbio su sanificazione input!
« Risposta #3 il: 01 Ott 2013, 18:57:59 »
Il problema in generale é più complesso e non saprei come spiegartelo senza esempi pratici o un foglio e una penna.... oltre al come filtrare esiste il dove filtrare e può non essere un unico punto.
Filtrare una request non vuol dire trovarsi dati puliti da scrivere nel DB e anche i problemi generati sono diversi.Credo possa diventare molto interessante l'intervento in programma al jday  proprio su qs argomento

Per salvare del codice é basilare almeno neutralizzare i tag che ne consentono l'interpretazione

Offline ndomiano

  • Nuovo arrivato
  • *
  • Post: 43
    • Mostra profilo
Re:Dubbio su sanificazione input!
« Risposta #4 il: 05 Ott 2013, 12:54:36 »
Il problema in generale é più complesso e non saprei come spiegartelo senza esempi pratici o un foglio e una penna.... oltre al come filtrare esiste il dove filtrare e può non essere un unico punto.
Filtrare una request non vuol dire trovarsi dati puliti da scrivere nel DB e anche i problemi generati sono diversi.Credo possa diventare molto interessante l'intervento in programma al jday  proprio su qs argomento

Per salvare del codice é basilare almeno neutralizzare i tag che ne consentono l'interpretazione
Quindi mi stai dicendo di usare l'array globale $_POST['']e da li utilizzarlo a seconda dei casi? Il problema è che non so proprio i tipi di cast, non saprei cosa usare per una variabile che deve contenere dei valori piuttosto che altri..

mau_develop

  • Visitatore
Re:Dubbio su sanificazione input!
« Risposta #5 il: 05 Ott 2013, 19:04:44 »

Quindi mi stai dicendo di usare l'array globale $_POST['']e da li utilizzarlo a seconda dei casi?
--------------------------------------------------------------------------------------------
No,... non capisco cosa ti abbia indotto a pensarlo
Posti diversi vuol dire che non è sufficiente fare un casting nel controller per essere sicuri che al momento dell'inserimento in un db (es.) sia ancora la stessa

 Il problema è che non so proprio i tipi di cast, non saprei cosa usare per una variabile che deve contenere dei valori piuttosto che altri..
------------------------------------------
scusa ma l'hai letto il link che ti ho messo?

Offline ndomiano

  • Nuovo arrivato
  • *
  • Post: 43
    • Mostra profilo
Re:Dubbio su sanificazione input!
« Risposta #6 il: 06 Ott 2013, 10:09:23 »
si l ho letto il link ma non so comuque cosa mi filtra il tipo CMD piuttosto che HTML ecc.. posso solo vederlo facendo prove su prove..
in definitiva soffermandoci sul singolo esempio del salvataggio HTML puro in DB, potresti aiutarmi solo con quello?

ho un form, inserisco HTML, salvo su db. (fine)
grazie

mau_develop

  • Visitatore
Re:Dubbio su sanificazione input!
« Risposta #7 il: 06 Ott 2013, 15:07:55 »
scusa ma cosa hai letto? ... il link e basta perchè tutta la pagina spiega proprio quello che chiedi tu...

    CMD

// Allow a-z, 0-9, underscore, dot, dash. Also remove leading dots from result.
$result = (string) preg_replace('/[^A-Z0-9_\.-]/i', '', $source);
$result = ltrim($result, '.');

 



Web Design Bolzano Kreatif