[Oisf-devel] libhtp - Normalization of query string

Anoop Saldanha anoopsaldanha at gmail.com
Mon Jun 17 08:18:11 UTC 2013


While producing the normalized uri, what is the right way to
generate the normalized query string? Can see 2 solutions -

    1. Duplicate this code section from htp_unparse_uri_noencode( ) -

        if (uri->query != NULL) {
            bstr *query = bstr_dup(uri->query);
            htp_uriencoding_normalize_inplace(query);
            bstr_add_c_noex(r, "?");
            bstr_add_noex(r, query);
            bstr_free(query);
        }

    2. Register htp_config_register_urlencoded_parser( ), and then
          use the below code -

        if (uri->query != NULL) {
            bstr_add_c_noex(r, "?");
            size_t tsize = htp_table_size(tx->request_params);
            size_t i;
            for (i = 0; i < tsize; i++) {
                htp_param_t *p =
                    htp_table_get_index(tx->request_params, i, NULL);
                if (p == NULL || p->source != HTP_SOURCE_QUERY_STRING)
                    continue;
                bstr_add_noex(r, p->name);
                if (bstr_len(p->value) != 0) {
                    bstr_add_c_noex(r, "=");
                    bstr_add_noex(r, p->value);
                }
                if (i != (tsize - 1))
                    bstr_add_c_noex(r, "&");
        }

    Which of these 2 is the right solution?

-- 
-------------------------------
Anoop Saldanha
http://www.poona.me
-------------------------------


More information about the Oisf-devel mailing list