Changeset 86131 in spip-zone


Ignore:
Timestamp:
Nov 17, 2014, 5:49:33 PM (5 years ago)
Author:
marcimat@…
Message:

Résoudre une partie de #3345 : une url http://domain.tld/?2 cherchait (avec MYSQL) une url propre dans spip_urls valant 2,
mais MYSQL testait une valeur entière (int) du texte, de sorte que l'url "2-sources" était acceptable et ?2 pouvait donc nous rediriger
sur l'article "2-sources" à tort.

On force donc partout où cela semble utile une utilisation d'échappements SQL de textes : sql_quote($url_propre, , 'TEXT') donc.

Location:
_core_/plugins/urls_etendues/urls
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • _core_/plugins/urls_etendues/urls/arbo.php

    r85480 r86131  
    527527                        $row=sql_fetsel('id_objet, type, url',
    528528                                                                                        'spip_urls',
    529                                                                                         is_null($type)?"url=".sql_quote($url_segment):sql_in('url',array("$type/$url_segment",$type)),
     529                                                                                        is_null($type)
     530                                                                                                ? "url=".sql_quote($url_segment, '', 'TEXT')
     531                                                                                                : sql_in('url',array("$type/$url_segment",$type)),
    530532                                                                                        '',
    531533                                                                                        // en priorite celui qui a le bon parent et les deux segments
  • _core_/plugins/urls_etendues/urls/propres.php

    r85480 r86131  
    343343        // Compatibilite avec les anciens marqueurs d'URL propres
    344344        // Tester l'entree telle quelle (avec 'url_libre' des sites ont pu avoir des entrees avec marqueurs dans la table spip_urls)
    345         if (!$row = sql_fetsel('id_objet, type, date, url', 'spip_urls', 'url='.sql_quote($url_propre))) {
     345        if (!$row = sql_fetsel('id_objet, type, date, url', 'spip_urls', 'url='.sql_quote($url_propre, '', 'TEXT'))) {
    346346                // Sinon enlever les marqueurs eventuels
    347347                $url_propre2 = retirer_marqueurs_url_propre($url_propre);
    348348
    349                 $row = sql_fetsel('id_objet, type, date, url', 'spip_urls', 'url='.sql_quote($url_propre2));
     349                $row = sql_fetsel('id_objet, type, date, url', 'spip_urls', 'url='.sql_quote($url_propre2, '', 'TEXT'));
    350350        }
    351351
     
    358358                // Si l'url est vieux, donner le nouveau
    359359                if ($recent = sql_fetsel('url, date', 'spip_urls',
    360                 'type='.sql_quote($row['type']).' AND id_objet='.sql_quote($row['id_objet'])
    361                 .' AND date>'.sql_quote($row['date'])
    362                 .' AND url<>'.sql_quote($row['url']), '', 'date DESC', 1)) {
     360                'type='.sql_quote($row['type'], '', 'TEXT').' AND id_objet='.sql_quote($row['id_objet'])
     361                .' AND date>'.sql_quote($row['date'], '', 'TEXT')
     362                .' AND url<>'.sql_quote($row['url'], '', 'TEXT'), '', 'date DESC', 1)) {
    363363                        // Mode compatibilite pour conserver la distinction -Rubrique-
    364364                        if (_MARQUEUR_URL) {
Note: See TracChangeset for help on using the changeset viewer.