Hi there! I have a simple view with a form (with GET method), in order to allow my visitors to do some search. The controller/function that processes the get is this:
def search(): session.forget(response) query = "tsv @@ plainto_tsquery('%s')" % request.vars.q total = db.executesql('SELECT COUNT(*) FROM contenido WHERE %s' % query) results = db(query).select() return dict(results=results) As you can see, I use a tsv field to implement postgresql full text search. The funcion is working ok. But *yesterday, I had an attack attempt*, or something like that. In just one hour, some robot sent a lot of queries to that URL, putting "garbage" in the "q" parameter. How did I notice that? Well, *in just one hour around 500 error tickets were created* in the /errors folder. All the errors have this form: - unterminated quoted string at or near "'../../../../../../../../../../windows/win.ini" LINE 1: ...tsv @@ plainto_tsquery('../../../... ^ - unterminated quoted string at or near "'1some_inexistent_file_with_long_name" LINE 1: ...tsv @@ plainto_tsquery('1some_ine... ^ - unterminated quoted string at or near "'../../../../../../../../../../etc/passwd" LINE 1: ...tsv @@ plainto_tsquery('../../../... ^ - invalid byte sequence for encoding "UTF8": 0xf0 0x20 0x20 0xf0 - invalid byte sequence for encoding "UTF8": 0xf6 0x22 0x20 0x6f - invalid byte sequence for encoding "UTF8": 0xa0 *I've already tried to use the search form with those query strings, but I cannot reproduce the error.* *How could the robot send those bytes to the query function?* Of course I can add a try: except: block, however I was wondering how to reproduce the error, I wasn't able to do it. Any help will be appreciated. Thanks in advance! Regards, Lisandro. -- Resources: - http://web2py.com - http://web2py.com/book (Documentation) - http://github.com/web2py/web2py (Source code) - https://code.google.com/p/web2py/issues/list (Report Issues) --- You received this message because you are subscribed to the Google Groups "web2py-users" group. To unsubscribe from this group and stop receiving emails from it, send an email to web2py+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/d/optout.