Changeset 626

Show
Ignore:
Timestamp:
04/21/07 20:13:47 (1 year ago)
Author:
gleu
Message:

Mise à jour 7.4.17.

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • traduc/branches/bv747/manuel/ref/create_function.sgml

    r104 r626  
    383383 </refsect1> 
    384384 
    385   
     385 <refsect1 id="sql-createfunction-security"> 
     386  <title>Écrire des fonctions <literal>SECURITY DEFINER</literal> en toute 
     387    sécurité</title> 
     388 
     389   <para> 
     390    Comme une fonction <literal>SECURITY DEFINER</literal> est exécutée 
     391    avec les droits de l'utilisateur qui l'a créé, une certaine attention 
     392    est nécessaire pour s'assurer que la fonction ne peut pas être 
     393    utilisée de façon maline. Pour des raisons de sécurité, 
     394    <xref linkend="guc-search-path"> doit être configuré pour exclure tout 
     395    schéma où des utilisateurs qui ne sont pas de confiance pourraient 
     396    écrire. Ceci empêche des utilisateurs malveillants de créer des 
     397    objets qui masqueraient des objets utilisés par la fonction. Dans 
     398    cette idée, le schéma des tables temporaires est particulièrement 
     399    important car il est le premier schéma dans lequel a lieu la recherche 
     400    et il est modifiable par tout utilisateur. Une solution est de forcer 
     401    la recherche à ne prendre en condition ce schéma qu'en dernier lieu. 
     402    Pour cela, écrire <literal>pg_temp</> en tant que dernière entrée de 
     403    <varname>search_path</>. La fonction suivante illustre une utilisation 
     404    sûre&nbsp;: 
     405   </para> 
     406 
     407<programlisting> 
     408CREATE FUNCTION verifie_motdepasse(unom TEXT, motpasse TEXT) 
     409RETURNS BOOLEAN AS $$ 
     410DECLARE ok BOOLEAN; 
     411        ancien_path TEXT; 
     412BEGIN 
     413        -- Sauvegarder l'ancien search_path ; 
     414        -- remarquez que nous devons qualifier current_setting 
     415        -- pour nous assurer que nous appelons la bonne fonction 
     416        ancien_path := pg_catalog.current_setting('search_path'); 
     417 
     418        -- Configurer un search_path sécurisé : schémas de confiance, puis 'pg_temp'. 
     419        -- Nous initialisons is_local = true pour que l'ancienne valeur 
     420        -- soit restaurée au cas où une erreur survienne avant que nous 
     421        -- n'atteignons la fin de la fonction. 
     422        PERFORM pg_catalog.set_config('search_path', 'admin, pg_temp', true); 
     423 
     424        -- Effectuer le travail sécurisé de la fonction. 
     425        SELECT  (motdepasse = $2) INTO ok 
     426        FROM    motsdepasse 
     427        WHERE   nomutilisateur = $1; 
     428 
     429        -- Restaurer le search_path de l'appelant 
     430        PERFORM pg_catalog.set_config('search_path', ancien_path, true); 
     431 
     432        RETURN ok; 
     433END; 
     434$$ LANGUAGE plpgsql SECURITY DEFINER; 
     435</programlisting> 
     436 
     437 </refsect1> 
     438 
    386439 <refsect1 id="sql-createfunction-compat"> 
    387440  <title>Compatibilité</title> 
  • traduc/branches/bv747/manuel/release.sgml

    r563 r626  
    55<appendix id="release"> 
    66 <title>Notes de version</title> 
     7 
     8  <sect1 id="release-7-4-17"> 
     9   <title>Version 7.4.17</title> 
     10 
     11   <note> 
     12   <title>Date de sortie</title> 
     13   <simpara>2007-04-23</simpara> 
     14   </note> 
     15 
     16   <para> 
     17    Cette version contient quelques corrections de la 7.4.16, dont la 
     18    correction d'une faille de sécurité. 
     19   </para> 
     20 
     21   <sect2> 
     22    <title>Migration vers la version 7.4.17</title> 
     23 
     24    <para> 
     25     Une sauvegarde/restauration n'est pas requise pour ceux utilisant une 
     26     version 7.4.X. Néanmoins, si vous mettez à jour à partir d'une version 
     27     antérieure à la 7.4.11, voir les notes de sortie de la 7.4.11. 
     28    </para> 
     29 
     30   </sect2> 
     31 
     32   <sect2> 
     33    <title>Modifications</title> 
     34 
     35    <itemizedlist> 
     36 
     37     <listitem> 
     38     <para> 
     39      Supporte le placement explicite du schéma des tables temporaires dans 
     40      <varname>search_path</>, et désactive sa recherche pour les fonctions 
     41      et opérateurs (Tom) 
     42     </para> 
     43     <para> 
     44      Ceci est nécessaire pour autoriser une fonction en mode security-definer 
     45      à configurer une valeur sécurisée de <varname>search_path</>. Sans cela, 
     46      un utilisateur SQL sans droit peut utiliser des objets temporaires pour 
     47      exécuter du code avec une fonction possédant les droits du créateur de 
     48      la fonction (CVE-2007-2138). Voir <command>CREATE FUNCTION</> pour plus 
     49      d'informations. 
     50     </para> 
     51     </listitem> 
     52 
     53     <listitem> 
     54     <para> 
     55      Correction d'arrêts brutaux dans <filename>/contrib/tsearch2</> (Teodor) 
     56     </para> 
     57     </listitem> 
     58 
     59     <listitem> 
     60     <para> 
     61      Correction d'un bogue pouvant corrompre des données dans la façon 
     62      dont <command>VACUUM FULL</> gère les chaînes <command>UPDATE</> 
     63      (Tom, Pavan Deolasee) 
     64     </para> 
     65     </listitem> 
     66 
     67     <listitem> 
     68     <para> 
     69      Correction d'un PANIC lors de l'élargissement d'un index haché 
     70      (bug introduit en 7.4.15) (Tom) 
     71     </para> 
     72     </listitem> 
     73 
     74    </itemizedlist> 
     75 
     76   </sect2> 
     77  </sect1> 
    778 
    879  <sect1 id="release-7-4-16"> 
     
    34433514  </sect2> 
    34443515 </sect1> 
     3516 
     3517  <sect1 id="release-7-3-19"> 
     3518   <title>Version 7.3.19</title> 
     3519 
     3520   <note> 
     3521   <title>Date de sortie</title> 
     3522   <simpara>2007-04-23</simpara> 
     3523   </note> 
     3524 
     3525   <para> 
     3526    Cette version contient quelques corrections de la 7.3.18, dont la 
     3527    correction d'une faille de sécurité. 
     3528   </para> 
     3529 
     3530   <sect2> 
     3531    <title>Migration vers la version 7.3.19</title> 
     3532 
     3533    <para> 
     3534     Une sauvegarde/restauration n'est pas requise pour ceux utilisant une 
     3535     version 7.3.X. Néanmoins, si vous mettez à jour à partir d'une version 
     3536     antérieure à la 7.3.13, voir les notes de sortie de la 7.3.13. 
     3537    </para> 
     3538 
     3539   </sect2> 
     3540 
     3541   <sect2> 
     3542    <title>Modifications</title> 
     3543 
     3544    <itemizedlist> 
     3545 
     3546     <listitem> 
     3547     <para> 
     3548      Supporte le placement explicite du schéma des tables temporaires dans 
     3549      <varname>search_path</>, et désactive sa recherche pour les fonctions 
     3550      et opérateurs (Tom) 
     3551     </para> 
     3552     <para> 
     3553      Ceci est nécessaire pour autoriser une fonction en mode security-definer 
     3554      à configurer une valeur sécurisée de <varname>search_path</>. Sans cela, 
     3555      un utilisateur SQL sans droit peut utiliser des objets temporaires pour 
     3556      exécuter du code avec une fonction possédant les droits du créateur de 
     3557      la fonction (CVE-2007-2138). Voir <command>CREATE FUNCTION</> pour plus 
     3558      d'informations. 
     3559     </para> 
     3560     </listitem> 
     3561 
     3562     <listitem> 
     3563     <para> 
     3564      Correction d'un bogue pouvant corrompre des données dans la façon 
     3565      dont <command>VACUUM FULL</> gère les chaînes <command>UPDATE</> 
     3566      (Tom, Pavan Deolasee) 
     3567     </para> 
     3568     </listitem> 
     3569 
     3570    </itemizedlist> 
     3571 
     3572   </sect2> 
     3573  </sect1> 
    34453574 
    34463575  <sect1 id="release-7-3-18"> 
  • traduc/branches/bv747/manuel/runtime.sgml

    r548 r626  
    20102010        mentionné, alors il sera cherché dans l'ordre spécifié. Si 
    20112011        <literal>pg_catalog</> ne fait pas partie du chemin, alors il sera 
    2012         cherché <emphasis>avant</> tout élément du chemin. Il devrait aussi être 
    2013         noté que le schéma des tables temporaires, 
    2014         <literal>pg_temp_<replaceable>nnn</></>, est cherché implicitement avant 
    2015         tout autre. 
     2012        cherché <emphasis>avant</> tout élément du chemin. 
     2013       </para> 
     2014 
     2015       <para> 
     2016        De même, la recherche des schémas passe toujours par le schéma des 
     2017        tables temporaires, <literal>pg_temp_<replaceable>nnn</></>, si ce 
     2018        dernier existe. Il est toujours possible de l'ajouter dans le chemin 
     2019        en utilisant l'alias <literal>pg_temp</>. S'il ne fait pas partie 
     2020        du chemin, la recherche commencera par lui (avant même 
     2021        <literal>pg_catalog</>). Néanmoins, seuls les noms de relation (table, 
     2022        vue, séquence, etc.) et de type de données sont recherchés dans le 
     2023        schéma temporaire. Aucune fonction et aucun opérateur n'y sera 
     2024        recherché. 
    20162025       </para> 
    20172026 
  • traduc/branches/bv747/manuel/version.sgml

    r570 r626  
    1 <!entity version "7.4.16"> 
     1<!entity version "7.4.17"> 
    22<!entity majorversion "7.4">