On Tue, 2009-10-20 at 12:58 +0200, Dotan Cohen wrote:

> > Dotan,
> >
> > You are making this thing harder then it has to be.
> >
> > All you need is to replicate the escaping of the same characters that
> > mysql_real_escape_string() escapes.  Simply do that.  They are listed on the
> > functions manual page on php.net
> >
> > http://php.net/mysql_real_escape_string
> >
> > Here is a function that I mocked up really quick.
> >
> > I have no idea if it will work, but it is a start down the right road to 
> > solve
> > your problem(s)...
> >
> > <?php
> >
> > function clean_string($input) {
> >
> >  /**
> >   * Character to escape...
> >   *    \x0     \n      \r      \       '       "       \x1a
> >  **/
> >
> >  $patterns = array( "\x0",   "\n", "\r", "\\",   "'",    "\"", "\x1a");
> >  $replace = array(  '\\\x0', '\n', '\r', '\\\\', '\\\'', '\\"',  '\\\x1a');
> >  return str_replace($patterns, $replace, $input);
> > }
> >
> > ?>
> >
> 
> I think that I would rather trust the built-in functions. I don't need
> to do anything "smart" and get attacked. Anybody else have an opinion
> on this?
> 
> 
> -- 
> Dotan Cohen
> 
> http://what-is-what.com
> http://gibberish.co.il
> 


Your only option might be to do something "smart". You can't use the
proper mysql functions without a connection to a database, but you
refuse to connect to a database until after you perform validation...

You do realise you can have several db connections open at one time, so
you could have one always open for the purpose of validation?
Potentially wasteful, but the architecture in this idea is a little
different from the norm.

Thanks,
Ash
http://www.ashleysheridan.co.uk


Reply via email to