to add a kink to the whole thing

<cfquery name="ins" datasource="artists" maxrows="10">
Select * from Artwork

order by <cfqueryparam cfsqltype="cf_sql_varchar" value="costcode asc" />

</cfquery>

works just fine against a SQL Server DB.  I'm about 98% certain this works
against Oracle too, but alas I have no big phat Oracle DB to play with
anymore.  That said, Dean's approach is safe, simple to implement, and more
portable in this case, eh?

DK

On 7/27/07, vivek khosla <[EMAIL PROTECTED]> wrote:
>
> The other way is to use cffunction in a cfc and
> passing the order by as varchar/string in cfargument,
> this will  provide security as well performance.
>
> <cfargument name="parameterName" type="dataType"
> required="true/false" default="defaultValue">
>
> Rgds
>
> Vivek Khosla
>
>
> --- "Dean H. Saxe" <[EMAIL PROTECTED]>
> wrote:
>
> > Charlie,
> >
> > Good idea.  Actually the numeric value can be used
> > to do this too in
> > what is called the pattern of indirection.  Put all
> > of the fixed
> > values, i.e. the order by clauses, into an array.
> > When the user
> > selects a value it is the ordinal position of the
> > value in the
> > array.  Before referencing the array you can
> > validate the value is
> > numeric and between 0 and arrayLen - 1.  You can
> > safely reference the
> > value directly in the cfquery at this point.
> >
> > I commonly use this pattern for things like account
> > numbers I am
> > presenting to a user, this is a good mechanism to
> > prevent the user
> > from attempting to put in a value other than the
> > ones presented to
> > him on the form.
> >
> > -dhs
> >
> >
> > Dean H. Saxe, CISSP, CEH
> > [EMAIL PROTECTED]
> > "If liberty means anything at all, it means the
> > right to tell people
> > what they do not want to hear."
> >      -- George Orwell, 1945
> >
> >
> > On Jul 26, 2007, at 8:57 PM, Charlie Arehart wrote:
> >
> > > Just wanted to add another thought on this thread
> > from earlier in
> > > the week. The issue was that Seth wanted to make
> > his ORDER BY
> > > clause to be driven by a user-entered variable (in
> > his case, a form
> > > radio button selecting the field to sort by), and
> > he found that
> > > CFQUERYPARAM wasn't working for that (because it's
> > designed for
> > > substituting values in a WHERE clause, not
> > table.or column names.)
> > > Dean's proposal of using a number to do the
> > sorting is indeed a
> > > useful one, but I thought of something that none
> > of us mentioned.
> > >
> > > Since you know that the list of columns is a
> > limited set, you could
> > > also keep it the simpler way of passing in the
> > column names (if you
> > > needed to for some reason), but always compare the
> > input field name
> > > against the set of valid columns to sort by. That
> > way, any
> > > nefarious attempt by a user to inject extra SQL
> > statements will be
> > > detected and prevented. Hope that's helpful.
> > >
> > > /charlie
> > >
> > >
> > > From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] On
> > Behalf Of Dean H.
> > > Saxe
> > > Sent: Monday, July 23, 2007 4:52 PM
> > > To: discussion@acfug.org
> > > Subject: Re: [ACFUG Discuss] cfqueryparam in a
> > sort
> > >
> > > Yes, Seth, technically you are correct.  But there
> > is a better way
> > > here.  Instead of passing the sort column name
> > directly from the
> > > user, send a proxy value for the order by clause.
> > In other words,
> > > identify the different order by clauses by numeric
> > value, 1, 2, 3,
> > > 4, etc.  In the query you would include a
> > <cfswitch> and the cases
> > > would be the different numeric values.  These
> > would then define
> > > what the ORDER by value would be.
> > >
> > > No more SQL injection and no need to much around
> > with
> > > <cfqueryparam> here, either.
> > >
> > > -dhs
> > >
> > > Dean H. Saxe, CISSP, CEH
> > > [EMAIL PROTECTED]
> > > "Great spirits have often encountered violent
> > opposition from weak
> > > minds."
> > >     --Einstein
> > >
> > >
> > > On Jul 23, 2007, at 4:46 PM, Tepfer, Seth wrote:
> > >
> > >> Aren't dynamic ORDER BY variables just as
> > susceptible to SQL
> > >> injection as WHERE clauses?
> > >>
> > >>
> > >
> > >
> >
> -------------------------------------------------------------
> > > Annual Sponsor - Figleaf Software
> > >
> > > To unsubscribe from this list, manage your profile
> > @
> > > http://www.acfug.org?fa=login.edituserform
> > >
> > > For more info, see
> > http://www.acfug.org/mailinglists
> > > Archive @
> > http://www.mail-archive.com/discussion%40acfug.org/
> > > List hosted by FusionLink
> > >
> >
> -------------------------------------------------------------
> >
> >
>
>
>
>
>
>
>       
> ____________________________________________________________________________________
> Luggage? GPS? Comic books?
> Check out fitting gifts for grads at Yahoo! Search
> http://search.yahoo.com/search?fr=oni_on_mail&p=graduation+gifts&cs=bz
>
>
> -------------------------------------------------------------
> Annual Sponsor FigLeaf Software - http://www.figleaf.com
>
> To unsubscribe from this list, manage your profile @
> http://www.acfug.org?fa=login.edituserform
>
> For more info, see http://www.acfug.org/mailinglists
> Archive @ http://www.mail-archive.com/discussion%40acfug.org/
> List hosted by http://www.fusionlink.com
> -------------------------------------------------------------
>
>
>
>


-- 
Douglas Knudsen
http://www.cubicleman.com
this is my signature, like it?



-------------------------------------------------------------
Annual Sponsor FigLeaf Software - http://www.figleaf.com

To unsubscribe from this list, manage your profile @ 
http://www.acfug.org?fa=login.edituserform

For more info, see http://www.acfug.org/mailinglists
Archive @ http://www.mail-archive.com/discussion%40acfug.org/
List hosted by http://www.fusionlink.com
-------------------------------------------------------------

Reply via email to