Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

problema con stringa sql

1 view
Skip to first unread message

m@stro

unread,
Jul 5, 2001, 4:42:26 AM7/5/01
to
Qualcuno magari ha gia avuto lo stesso problema....
premetto che sono nuovo di php;
se posto (in impu type hidden nel mio caso) una stringa sql

select * from tabella where nome like '%%%' and regione like '%basilicata%'
and notes like '%%%' order by nome asc LIMIT 0, 10

php me la trasforma mettendo i back slash davanti agli apici...

qualcuno ha gia risolto la questione?
ringrazio anticipatamente

M@stro

nostromo

unread,
Jul 5, 2001, 5:14:25 AM7/5/01
to

stripslashes($stringaSQL);
ciao
corrado

ak47

unread,
Jul 5, 2001, 5:09:55 AM7/5/01
to
"m@stro" wrote:

> php me la trasforma mettendo i back slash davanti agli apici...

Usa la funzione:

stripslashes()

sintassi:

$stinga_senza_slash = stripslashes($stinga_con_slash);

Leonardo Serni

unread,
Jul 5, 2001, 6:12:40 AM7/5/01
to
On Thu, 05 Jul 2001 08:42:26 GMT, "m@stro"
<ja...@TOGLIMIpalazzojatta.org> wrote:

Si', usando le funzioni StripSlashes() e AddSlashes().

Inoltre, che succede se, ipoteticamente, io prendo la tua pagina sul
mio browser, modifico il tuo campo hidden in

DELETE FROM tabella

e poi, dopo averla ricaricata, premo "Invio"?

Leonardo maičutico
--
Nior thainig ar major i dtus an lae chugainn,
is ni rabhamar fein ann i gcoir na gceart
ach mar sheolfai aoireacht bo gan aoire,
ar thaobh na greine de Sliabh na mBan.

m@stro

unread,
Jul 5, 2001, 9:06:42 AM7/5/01
to
grazie a tutti prima di tutto,

> Inoltre, che succede se, ipoteticamente, io prendo la tua pagina sul
> mio browser, modifico il tuo campo hidden in
>
> DELETE FROM tabella
>
> e poi, dopo averla ricaricata, premo "Invio"?

credo che se si impostano i diritti sul database in modo che possa accettare
solo
connessioni da localhost non ci dovrebbero essere problemi...

cmq se qualcuno ne sa di piu continui...:-)
grazie ancora!
M@stro


Leonardo Serni

unread,
Jul 5, 2001, 10:18:52 AM7/5/01
to
On Thu, 05 Jul 2001 13:06:42 GMT, "m@stro"
<ja...@TOGLIMIpalazzojatta.org> wrote:

>> Inoltre, che succede se, ipoteticamente, io prendo la tua pagina sul
>> mio browser, modifico il tuo campo hidden in

>> DELETE FROM tabella

>> e poi, dopo averla ricaricata, premo "Invio"?

>credo che se si impostano i diritti sul database in modo che possa accettare
>solo connessioni da localhost non ci dovrebbero essere problemi...

<confidenza>
La frase "non ci dovrebbero essere problemi", insieme alle compagne "non
puo' succedere" e "firewall", sono un campanello d'allarme che ci indica
di trovarci di fronte ad un sys-admin ottimista; "standard di mercato" e
"facile da configurare", ad un sys-admin incompetente.

Per evitare di sentire in seguito le frasi: "non capisco come sia potuto
accadere", "non avrebbe dovuto succedere", ed "almeno, non ha sofferto",
la mia raccomandazione e' di NON avvalersi dei servigi di costoro.

(L. Serni, "New Economy Survival Kit per Bastardoni", Keplero Hall 1998)
</confidenza>

Tornando seri: dici di connettersi solo da localhost.

Ma in questo caso non avrebbe senso il campo HIDDEN in primo luogo, no?

Se proprio DEVI, ti conviene filtrare il campo con eregi():

// Molto, forse troppo, semplice
$ALLOWED = "SELECT ([a-z0-9, ]*) FROM ([A-Za-z0-9, ]*) WHERE
([^;]*);";
if (!eregi($QUERY, $ALLOWED, $campi))
{
// AAAGGGHHH
/*
Segnalare l'accaduto, loggare IP, HTTP_REFERER e tutto
il resto, inviare una falsa pagina di errore indicante
che non ci siamo potuti connettere al DNS "ADMIN", sul
server database 198.81.135.177, user "TABUN", password
"militia666".
*** CHILDREN, DO #NOT!# DO THIS AT HOME ***
*/
}
else
{
$SQLQuery = "SELECT $campi[1] FROM $campi[2] WHERE
$campi[3];";
$exec = SQLExec($conn, $SQLQuery);
...
}

Leonardo

ak47

unread,
Jul 5, 2001, 10:17:26 AM7/5/01
to
"m@stro" wrote:

> > Inoltre, che succede se, ipoteticamente, io prendo
> > la tua pagina sul mio browser, modifico il tuo campo
> > hidden in
> >
> > DELETE FROM tabella
> >
> > e poi, dopo averla ricaricata, premo "Invio"?

> credo che se si impostano i diritti sul database in modo che
> possa accettare solo connessioni da localhost non ci dovrebbero
> essere problemi...

La form viene processata dal tuo script, ed il tuo
script e' su localhost ...


m@stro

unread,
Jul 5, 2001, 11:23:53 AM7/5/01
to

ak47 <ak...@local.armory> wrote in message 3b447...@212.7.64.37...

> La form viene processata dal tuo script, ed il tuo
> script e' su localhost ...

ma devi poter salvare il file php sul mio server...
o no?
M@stro


WEbdOM

unread,
Jul 5, 2001, 2:19:44 PM7/5/01
to
uhmm, ma i backslash davanti agli apici vanno messi (di solito uso le doppie virgolette :faccio una query del tipo like \" jfihffia \" e funziona.)

WEbdOM

unread,
Jul 5, 2001, 2:20:03 PM7/5/01
to
On Thu, 05 Jul 2001 08:42:26 GMT, "m@stro" <ja...@TOGLIMIpalazzojatta.org> wrote:

sorry

WEbdOM

unread,
Jul 5, 2001, 2:20:41 PM7/5/01
to
On Thu, 05 Jul 2001 08:42:26 GMT, "m@stro" <ja...@TOGLIMIpalazzojatta.org> wrote:
raga' scusate ma news.tin.it non mi fa postare messaggi piu' lunghi di due righe!!!!Sara' una benedizione per voi:)

WEbdOM

unread,
Jul 5, 2001, 2:24:20 PM7/5/01
to
On Thu, 05 Jul 2001 08:42:26 GMT, "m@stro" <ja...@TOGLIMIpalazzojatta.org> wrote:

La stringa ke manda php e' corretta (se deve essere elaborata dal server sql). Infatti, nelle query bisogna mettere \ prtima di " o ' .(i.e. like \" % \" e' corretto).
Spero di aver capito la domanda:)

ak47

unread,
Jul 5, 2001, 5:48:59 PM7/5/01
to
"m@stro" ha scritto:

Effettuare il post di qualunque cosa ad uno script che
accetti il submit di dati via post e' uno spoofing
banale.

Tu hai detto che la query e' in un campo hidden.

Dunque fare eseguire al tuo script una query e' semplice.

Nel piu' banale dei casi, considera lo script:

<?
/* script pippo.php */

echo "Ecco X: $X";
?>

Esso stampera' il valore di X:

se e' passato tramite form metodo POST
se e' passato tramite form metodo GET
richiamando direttamente lo script con "pippo.php?X=valore".

Quindi, OCCHIO!


m@stro

unread,
Jul 6, 2001, 4:03:00 AM7/6/01
to

ak47 <ak...@local.armory> wrote in message
9i2nc2$jd6$1...@lacerta.tiscalinet.it...
> "m@stro" ha scritto:

> se e' passato tramite form metodo POST
> se e' passato tramite form metodo GET
> richiamando direttamente lo script con "pippo.php?X=valore".
>
> Quindi, OCCHIO!

scusate, ero io che non capivo quello che volevate dire....
chiedo venia,
si ok cmq il file serviva per la lan interna, lo so che non è una soluzione
professionale,
ma non essendo un genio di php era l'unico modo per fare la paginazione
della visualizzazione di un db...

grazie... lo stesso

M@stro

m@stro

unread,
Jul 6, 2001, 4:06:55 AM7/6/01
to
P.S.

in ogni caso con mysql è possibile limitare i permessi dello script.php
tramite lutilizzo di specifiche nome e password....
giusto?


ak47

unread,
Jul 6, 2001, 5:47:41 AM7/6/01
to
"m@stro" wrote:

Certo, ma quella di passare una query in un campo resta
sempre una cosa molto pericolosa. Normalmente le si usa
a scopo dimostrativo: "ecco cosa NON fare".


0 new messages