[TinyOWS-dev] A few bug reports...

Olivier Courtin olivier.courtin at oslandia.com
Thu Sep 30 15:31:12 EST 2010


On Sep 28, 2010, at 11:23 PM, Okapi wrote:


Hi,

> First of all, thanks for all the work done on this project and letting
> me access my PostGIS features more easily that any other program would
> do!
> I appreciate hosting a light CGI for the WFS service, rather than a
> heavy Java solution consuming memory permanently.

Thanks :)

>
> I have a few bugs to report, which do not seem to appear in the Active
> tickets report. I'm using the code of revision 313.
>
> ------------
> 1. Strings not escaped properly in pg queries
>   TinyOWS fails to insert features containing a string with a quote!
>   wfs_insert_xml() inserts features into the DB through calling
> wfs_retrieve_value() to encode the string en enclose it within quotes.
> That function should use the PG native escape function rather than
> xmlEncodeSpecialChars().
>
>   I saw "#36 Prevent SQL Injections coming from the requets":
> indeed, if quotes are not escaped, the SQL injection is very easy to
> do. This bug, if confirmed, is a severe and urgent one!

Ok i agree this one is becoming now the priority !
had to check also on update operation and in filter encoding string.


> 2. First declared namespace applies to all layers in config
>   Example (keeping only <layer> elements and only the "server"  
> attribute):
>   <tinyows>
>       <layer name="layer1" server="http://test.domain.net/"/>
>       <layer name="layer2" server="http://other.domain.net/"/>
>       <layer name="layer3" server="http://yet.another.domain.net/"/>
>   </tinyows>
>   Here, all three layers will appear to be in schema
> "http://test.domain.net/".
>   I noticed that by using test/unit_test with OWS_DEBUG=1 to
> understand why "xml isn't valid". Reading in the XML parser messages
> what fully-qualified element names it expects, I understood that it
> expected <http://test.domain.net/:layer2> and not
> <http://other.domain.net/:layer2>. I changed things around to check,
> and it seems that the first declared layer imposes its namespace to
> all others.
>

Ok,

>
> 3. $TINYOWS_CONFIG_FILE confused with /usr/local/...'s
>   This way of setting the config path is just the perfect way. With
> a SetEnv directive in the Apache virtual host, it's easy for each
> website to have it's own tinyows.xml. That's what I do and I needed
> it.
>   But I got a strange behaviour : the layers in the
> $TINYOWS_CONFIG_FILE file which are not also declared in the site
> config file were not taken into account. `tinyows --check` is OK
> though, but schema validation for Insert requests seems to read the
> other file. The DescribeFeatureType request is OK though. And
> unit/unit_test seems also to ignore the env variable for an Insert
> request.
>   I haven't yet checked the code for possible duplicate code related
> to config file loading.

Strange indeed as config file access is centralized and perform so
early in the process.



> ------------
>
> That's all for now!

Thanks for all theses detailled report !

>
> I'm sending this to the dev ML as I have no right to post them to the
> trac. How should I report them in the future?

You just have to create a new account on trac,
and then login with it to be able to create a new ticket
(or to write on WIKI)

> I can try to fix these issues in the code, but I need some basic
> explanations about how things are managed related to these issues.

You're welcome !
I can provide explanations to help you on this,

Don't hesitate to send patch

(Will not have time before tomorrow evening to look on the first one.)


--
Olivier


More information about the TinyOWS-dev mailing list