com doc/fr: Apply commit f029b664b8728bd5cbb697cb9a4409aea07cb36c: faq/using.xml reference/info/functions/get-magic-quotes-gpc.xml security/magicquotes.xml
[email protected] (George Peter Banyard) Sat, 16 Jan 2021 12:06:24 +0000
| Newsgroups | php.doc.fr |
|---|---|
| Message-ID | <[email protected]> |
Commit: 5031789d6d5142f81002ff2de3dc5292254d0318 Author: George Peter Banyard <[email protected]> Sat, 16 Jan 2021 12:06:24 +0000 Parents: 666a77d26d0cc0a724c340f6373cdead17a99893 Branches: master Link: http://git.php.net/?p=doc/fr.git;a=commitdiff;h=5031789d6d5142f81002ff2de3dc5292254d0318 Log: Apply commit f029b664b8728bd5cbb697cb9a4409aea07cb36c Remove magic quote mentions Changed paths: M faq/using.xml M reference/info/functions/get-magic-quotes-gpc.xml D security/magicquotes.xml
diff_5031789d6d5142f81002ff2de3dc5292254d0318.txt
(text/plain, 13.7 KB)
diff --git a/faq/using.xml b/faq/using.xml
index 5710decb60..f20b353475 100755
--- a/faq/using.xml
+++ b/faq/using.xml
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- $Revision$ -->
-<!-- EN-Revision: 86e6094e86b84a51d00ab217ac50ce8dde33d82a Maintainer: yannick Status: ready -->
+<!-- EN-Revision: f029b664b8728bd5cbb697cb9a4409aea07cb36c Maintainer: yannick Status: ready -->
<!-- Reviewed: yes -->
<chapter xml:id="faq.using" xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink">
@@ -86,6 +86,7 @@ echo '</pre>';
</qandaentry>
<qandaentry xml:id="faq.using.addslashes">
+ <!-- TODO Probably should mention not doing this... -->
<question>
<para>
Il faut que je convertisse tous les guillemets simples (')
@@ -105,31 +106,6 @@ echo '</pre>';
<function>addslashes</function> et <function>stripslashes</function>,
qui sont plus communes avec l'ancien code PHP.
</para>
-
- ¬e.magicquotes.gpc;
-
- </answer>
- </qandaentry>
-
- <qandaentry xml:id="faq.using.stripslashes">
- <question>
- <para>
- Tous mes " se transforment en \" et mes ' en \', comment me débarrasser
- de tous ces antislashs ? Comment et pourquoi sont-ils apparus ?
- </para>
- </question>
- <answer>
- <para>
- Les anti-slashes existent très probablement parce que la directive PHP
- <link linkend="ini.magic-quotes-gpc">magic_quotes_gpc</link> est activée.
- C'est une ancienne fonctionnalité de PHP et elle doit être désactivée et
- plus jamais être utilisée. De même, la fonction PHP
- <function>stripslashes</function> peut être utilisée pour supprimer
- les slashes d'une &string;.
- </para>
-
- ¬e.magicquotes.gpc;
-
</answer>
</qandaentry>
diff --git a/reference/info/functions/get-magic-quotes-gpc.xml b/reference/info/functions/get-magic-quotes-gpc.xml
index 994d9ea1ef..246ad9d77a 100644
--- a/reference/info/functions/get-magic-quotes-gpc.xml
+++ b/reference/info/functions/get-magic-quotes-gpc.xml
@@ -1,8 +1,7 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- $Revision$ -->
-<!-- EN-Revision: 3e15d2894fb35432d2a111db36fe8ba8ebc62024 Maintainer: yannick Status: ready -->
+<!-- EN-Revision: f029b664b8728bd5cbb697cb9a4409aea07cb36c Maintainer: yannick Status: ready -->
<!-- Reviewed: no -->
-
<refentry xml:id="function.get-magic-quotes-gpc" xmlns="http://docbook.org/ns/docbook">
<refnamediv>
<refname>get_magic_quotes_gpc</refname>
@@ -20,25 +19,14 @@
<void/>
</methodsynopsis>
<para>
- Retourne la configuration actuelle de l'option
- <link linkend="ini.magic-quotes-gpc">magic_quotes_gpc</link>
- </para>
- <para>
- Gardez en tête que vous ne pouvez pas définir
- <link linkend="ini.magic-quotes-gpc">magic_quotes_gpc</link>
- au moment de l'exécution.
- </para>
- <para>
- Pour plus d'informations sur magic_quotes, voir la section sur les
- <link linkend="security.magicquotes">guillemets magiques</link>.
+ Retourne toujours &false;.
</para>
</refsect1>
<refsect1 role="returnvalues">
&reftitle.returnvalues;
<para>
- Retourne &zero; si magic_quotes_gpc est désactivée, 1 sinon.
- Retourne &false; depuis PHP 5.4.0.
+ Retourne toujours &false;.
</para>
</refsect1>
@@ -66,38 +54,6 @@
</para>
</refsect1>
- <refsect1 role="examples">
- &reftitle.examples;
- <para>
- <example>
- <title>Exemple avec <function>get_magic_quotes_gpc</function></title>
- <programlisting role="php">
-<![CDATA[
-<?php
-// Si les guillemets magiques sont actifs
-echo $_POST['lastname']; // O\'reilly
-echo addslashes($_POST['lastname']); // O\\\'reilly
-
-// Utilisation pour toutes les versions de PHP
-if (get_magic_quotes_gpc()) {
- $lastname = stripslashes($_POST['lastname']);
-}
-else {
- $lastname = $_POST['lastname'];
-}
-
-// Si vous utilisez MySQL
-$lastname = mysql_real_escape_string($lastname);
-
-echo $lastname; // O\'reilly
-$sql = "INSERT INTO lastnames (lastname) VALUES ('$lastname')";
-?>
-]]>
- </programlisting>
- </example>
- </para>
- </refsect1>
-
<refsect1 role="seealso">
&reftitle.seealso;
<para>
diff --git a/security/magicquotes.xml b/security/magicquotes.xml
deleted file mode 100644
index 6bdee53cb9..0000000000
--- a/security/magicquotes.xml
+++ /dev/null
@@ -1,255 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- $Revision$ -->
-<!-- EN-Revision: 5b53e0d1772a256cbfa55f6abba783d32f6a9deb Maintainer: yannick Status: ready -->
-<!-- Reviewed: yes -->
-
- <chapter xml:id="security.magicquotes" xmlns="http://docbook.org/ns/docbook">
- <title>Guillemets magiques</title>
- &warn.deprecated.feature-5-3-0.removed-5-4-0;
- <para>
- Les guillemets magiques (littéralement, les <literal>Magic Quotes</literal>)
- est un processus qui protège automagiquement les données introduites dans
- un script <acronym>PHP</acronym>. Il est recommandé de développer les applications sans
- l'aide des guillemets magiques, et de protéger manuellement les données.
- </para>
-
- <sect1 xml:id="security.magicquotes.what">
- <title>Qu'est-ce que les guillemets magiques?</title>
- &warn.deprecated.feature-5-3-0.removed-5-4-0;
- <para>
- Lorsque cette directive est active, les guillemets simples
- <literal>'</literal>, les guillemets doubles <literal>"</literal>,
- les antislashs <literal>\</literal> et les caractères nul
- <literal>NULL</literal> sont protégés automatiquement avec un antislash.
- C'est le même résultat que celui de la fonction
- <function>addslashes</function>.
- </para>
- <para>
- Il y a trois directives de guillemets magiques différentes :
- </para>
- <itemizedlist>
- <listitem>
- <simpara>
- <link linkend="ini.magic-quotes-gpc">magic_quotes_gpc</link>
- </simpara>
- <simpara>
- Affecte les données issues des requêtes <acronym>HTTP</acronym> (GET, POST, et COOKIE). Ne
- peut pas être configurée durant l'exécution, et vaut par défaut
- <emphasis>on</emphasis> en <acronym>PHP</acronym>.
- </simpara>
- <simpara>
- Voir aussi <function>get_magic_quotes_gpc</function>.
- </simpara>
- </listitem>
- <listitem>
- <simpara>
- <link linkend="ini.magic-quotes-runtime">magic_quotes_runtime</link>
- </simpara>
- <simpara>
- Si activée, la plupart des fonctions qui retournent des données
- externes, y compris issues d'une base de données ou d'un fichier
- texte, verront les données protégées par des antislashs. Cette
- directive peut être modifiée durant l'exécution, et vaut par
- défaut <emphasis>off</emphasis> en <acronym>PHP</acronym>.
- </simpara>
- <simpara>
- Voir aussi <function>set_magic_quotes_runtime</function> et
- <function>get_magic_quotes_runtime</function>.
- </simpara>
- </listitem>
- <listitem>
- <simpara>
- magic_quotes_sybase <!-- to be removed later -->
- </simpara>
- <simpara>
- Si cette configuration est active, les guillemets simples sont
- protégés avec un autre guillemets simples, et non pas un antislash.
- Lorsqu'elle est active, cette directive remplace entièrement
- <link linkend="ini.magic-quotes-gpc">magic_quotes_gpc</link>.
- Si vous activez ces deux directives, alors seuls les guillemets
- simples seront protégés, avec <literal>''</literal>. Les guillemets
- doubles, les antislashs et les caractères nul seront laissés intacts.
- </simpara>
- <simpara>
- Voir aussi <function>ini_get</function> pour lire la valeur de la
- directive.
- </simpara>
- </listitem>
- </itemizedlist>
- </sect1>
-
- <sect1 xml:id="security.magicquotes.why">
- <title>Pourquoi utiliser les guillemets magiques?</title>
- &warn.deprecated.feature-5-3-0.removed-5-4-0;
- <itemizedlist>
- <listitem>
- <simpara>
- Il n'y a aucune raison d'utiliser les guillemets magiques,
- car ils ne sont plus supportés en <acronym>PHP</acronym>. Cependant, ils ont
- existé, et ont aidé quelques débutants, en le permettant de
- produire, sans le savoir et involontairement, du code plus
- sécuritaire. Lorsque vous tombez sur des scripts qui s'appuient
- sur ce type de comportements, il est recommandé de modifier
- ce code et de désactiver les guillemets magiques.
- </simpara>
- <simpara>
- Pour quelles raisons cette fonctionnalité est apparue? Simplement
- pour se protéger des
- <link linkend="security.database.sql-injection">injections SQL</link>.
- Aujourd'hui, les développeurs sont plus conscients des problèmes
- de sécurité, et adoptent les mécanismes de protections de leur
- base de données, ou les commandes préparées, au lieu de passer
- par les guillemets magiques.
- </simpara>
- </listitem>
- </itemizedlist>
- </sect1>
-
- <sect1 xml:id="security.magicquotes.whynot">
- <title>Pourquoi ne pas utiliser les guillemets magiques?</title>
- &warn.deprecated.feature-5-3-0.removed-5-4-0;
- <itemizedlist>
- <listitem>
- <simpara>
- Portabilité
- </simpara>
- <simpara>
- Cette directive peut être activée ou désactivée suivant
- les serveurs et cela affecte grandement la portabilité. Utilisez
- <function>get_magic_quotes_gpc</function> pour vérifier s'ils sont
- actifs ou pas, et adaptez votre application.
- </simpara>
- </listitem>
- <listitem>
- <simpara>
- Performances
- </simpara>
- <simpara>
- Comme ce n'est pas toutes les données qui sont finalement placées
- dans une base, il y a un coût en vitesse pour protéger toutes ces
- données. Le simple appel des fonctions de protections en fonction
- des besoins est plus efficace (<function>addslashes</function>).
- </simpara>
- <simpara>
- Même si <filename>php.ini-development</filename> active ces options par défaut,
- <filename>php.ini-recommended</filename> les désactive.
- Cette recommandation est surtout faite pour des raisons de vitesse.
- </simpara>
- </listitem>
- <listitem>
- <simpara>
- Peu pratique
- </simpara>
- <simpara>
- Comme toutes les données n'ont pas forcément besoin de protection,
- il est souvent désagréable de voir des données protégées là où ça ne
- sert à rien. Par exemple, lorsque vous envoyez par mail un formulaire,
- et que vous voyez des antislashs parsemer le message. Pour corriger
- cela, il faut faire un usage fréquent de
- <function>stripslashes</function>.
- </simpara>
- </listitem>
- </itemizedlist>
- </sect1>
-
- <sect1 xml:id="security.magicquotes.disabling">
- <title>Désactiver les guillemets magiques</title>
- <para>
- La directive <link linkend="ini.magic-quotes-gpc">magic_quotes_gpc</link>
- ne peut être désactivée qu'au niveau du système, et non pas à l'exécution.
- En d'autres termes, utiliser <function>ini_set</function> n'est pas
- possible.
- </para>
- <para>
- <example>
- <title>Désactiver les guillemets magiques du coté du serveur</title>
- <para>
- Voici un exemple qui donne la valeur de Off à ces directives dans
- le fichier &php.ini;. Pour plus de détails, voyez la section
- <link linkend="configuration.changes">Comment changer la
- configuration</link>.
- </para>
- <screen>
-<![CDATA[
-; Magic quotes
-;
-
-; Magic quotes for incoming GET/POST/Cookie data.
-magic_quotes_gpc = Off
-
-; Magic quotes for runtime-generated data, e.g. data from SQL, from exec(), etc.
-magic_quotes_runtime = Off
-
-; Use Sybase-style magic quotes (escape ' with '' instead of \').
-magic_quotes_sybase = Off
-]]>
- </screen>
- <para>
- Si vous n'avez pas accès au serveur, utilisez le fichier
- <filename>.htaccess</filename>. Par exemple :
- </para>
- <screen>
-<![CDATA[
-php_flag magic_quotes_gpc Off
-]]>
- </screen>
- </example>
- </para>
- <para>
- Afin d'écrire du code portable sur tous les environnements, et où vous ne
- pourrez pas forcément modifier la configuration du serveur, voici un
- exemple de désactivation de
- <link linkend="ini.magic-quotes-gpc">magic_quotes_gpc</link> à l'exécution.
- Cette méthode est inefficace, et il est recommandé d'utiliser les
- autres solutions si possible.
- </para>
- <para>
- <example>
- <title>Désactivation des guillemets magiques à l'exécution</title>
- <programlisting role="php">
-<![CDATA[
-<?php
-if (get_magic_quotes_gpc()) {
- $process = array(&$_GET, &$_POST, &$_COOKIE, &$_REQUEST);
- while (list($key, $val) = each($process)) {
- foreach ($val as $k => $v) {
- unset($process[$key][$k]);
- if (is_array($v)) {
- $process[$key][stripslashes($k)] = $v;
- $process[] = &$process[$key][stripslashes($k)];
- } else {
- $process[$key][stripslashes($k)] = stripslashes($v);
- }
- }
- }
- unset($process);
-}
-?>
-]]>
- </programlisting>
- </example>
- </para>
- </sect1>
-
- </chapter>
-
-<!-- Keep this comment at the end of the file
-Local variables:
-mode: sgml
-sgml-omittag:t
-sgml-shorttag:t
-sgml-minimize-attributes:nil
-sgml-always-quote-attributes:t
-sgml-indent-step:1
-sgml-indent-data:t
-indent-tabs-mode:nil
-sgml-parent-document:nil
-sgml-default-dtd-file:"~/.phpdoc/manual.ced"
-sgml-exposed-tags:nil
-sgml-local-catalogs:nil
-sgml-local-ecat-files:nil
-End:
-vim600: syn=xml fen fdm=syntax fdl=2 si
-vim: et tw=78 syn=sgml
-vi: ts=1 sw=1
--->