[ic] sql filter not 100% safe for MySQL
Mike Heins
mike at perusion.com
Sun Jul 25 10:41:37 EDT 2004
Quoting Tony Fraser (tony at sybaspace.com):
> On Sat, 2004-07-24 at 20:15, Mike Heins wrote:
> > I would like to allow
> >
> > [query
> > sql="select field from table where foo = ? and bar = ?"
> > arg.0="[cgi foo]"
> > arg.1="[cgi bar]"
> > ]
> >
> > but unfortunately the array-based args don't handle included ITL.
> > This would be the safest way to do it -- to have DBI do the quoting
> > for you as needed.
> >
> > I will think about this and see if an epiphany happens. Until then,
> > defining a mysql filter is probably the way to go.
>
>
> I haven't dug around in the IC DB layer much but would it be possible to
> make [filter op="sql"] reach down the stack and do a
> $dbi_handle->quote()?
No, because if the query is in the quote parameters it is formulated
before you ever make the call to query -- and you have no way to
know which object you are filtering for.
That is why I like the idea of using DBI placeholders, because that
*does* have that knowledge.
In the above example, presuming you could get the [cgi foo] interpolated
and into the argument array, DBI does the filtering for you.
--
Mike Heins
Perusion -- Expert Interchange Consulting http://www.perusion.com/
phone +1.765.647.1295 tollfree 800-949-1889 <mike at perusion.com>
Some people have twenty years of experience, some people have
one year of experience twenty times over. -- Anonymous
More information about the interchange-users
mailing list