Contrassegna parti di stringhe come non sicure?

2

C'è un modo semplice per marcare parti non sicure di una stringa? Ad esempio per l'uso in SQL.

esempio in php:
someFunction("safe text" . $unsafeVariable . "safe text" . $anotherUnsafeVariable);

C'è un modo semplice per sapere, in someFunction , quali parti della stringa passata non sono sicure?

Potrei inviare una serie di stringhe in cui ogni stringa è preceduta da qualcosa che dice se è sicuro o non sicuro, ma non è proprio un modo semplice per scrivere codice.

    
posta Filip Haglund 07.04.2013 - 14:07
fonte

1 risposta

4

In realtà è un modo per contrassegnare un elemento stringa come "non sicuro" e si chiama istruzioni preparate . Una dichiarazione preparata è un pezzo di codice SQL che è hardcoded nell'origine dell'applicazione, cioè una "stringa sicura", ma con alcuni segnaposto per i parametri: ogni segnaposto significa davvero: "quando si tratta di in esecuzione questa istruzione SQL, usa la stringa argomento, ma fai attenzione che l'argomento possa essere "non sicuro", cioè potrebbe contenere qualcosa in un modo potenzialmente ostile ".

Questo è esattamente il meccanismo che stai cercando: un modo per contrassegnare parti di un'istruzione SQL come "non sicuro" e quindi garantire alcuni "resafing" extra automatici.

Alcune persone usano metodi manuali non automatici per "rendere sicure le stringhe", con funzioni come mysql_really_really_espace_string_this_time_I_said_please() . Questi metodi manuali sono profondamente insoddisfacenti, inefficienti e occasionalmente falliscono perché si basano su alcuni metodi forniti da PHP per essere pienamente a conoscenza di tutti i dettagli della sintassi delle istruzioni accettate da MySQL, un pacchetto software distinto , potenzialmente aggiornato separatamente e scritto da sviluppatori distinti che non necessariamente si sincronizzano con gli sviluppatori PHP. Con istruzioni preparate, il "meccanismo di fuga" (o meccanismo equivalente) si verifica all'interno di MySQL stesso, e possiamo presumere che MySQL, almeno, è d'accordo con se stesso, evitando questi problemi.

    
risposta data 07.04.2013 - 16:10
fonte

Leggi altre domande sui tag