recursal/MDN huggingface dataset:
Sécurité Web
============

La sécurité d'un site internet ou d'une application web est essentielle. Même de simple bugs dans votre code peuvent impliquer la fuite d'informations privées et des personnes mals intentionnées essayent constamment de trouver des moyens de voler des données. Les articles sur la sécurité web listés ici fournissent des informations qui devraient vous aider à sécuriser votre site et rendre votre code plus sûr contre les attaques et vols de données.

Contenu mixteLorsqu'une personne visite une page servie en HTTPS, la connexion entre le navigateur et le serveur web est chiffrée avec `TLS` et est donc protégée des risques d'interception des données et d'attaques de l'homme du milieu. Une page HTTPS qui inclut du contenu récupéré en clair avec HTTP est appelée une page **de contenu mixte** (*mixed content* en anglais). De telles pages ne sont que partiellement chiffrées et le contenu non-chiffré reste alors sujet aux risques d'interception. Ces pages ne sont pas complètement sécurisées.

Public Key PinningL'extention **Public Key Pinning pour HTTP** (HPKP) est une fonctionnalité de sécurité qui dit au client web d'associer une clé publique cryptographique avec un certain serveur web pour éviter les attaques MITM avec des certificats contrefaits.

Referer header: privacy and security concernsL'entête HTTP Referer présente des risques de confidentialité et de sécurité. Cet article les décrit et donne des conseils pour les minimiser.

Same-origin policyLa same-origin policy restreint la manière dont un document ou un script chargé depuis une origine peut interagir avec une autre ressource chargée depuis une autre origine.

Secure ContextsUn navigateur entre dans un **contexte sécurisé** quand il a satisfait les exigences minimale de sécurité. Un contexte sécurisé permet au navigateur de mettre à disposition des APIs qui nécessitent des transferts sécurisés avec l'utilisateur.

Subresource Integrity***Subresource Integrity*** (SRI, ou « Intégrité des sous-ressources ») est une fonction de sécurité qui permet aux navigateurs de vérifier que les fichiers qu'ils vont chercher (par exemple, à partir d'un CDN) sont livrés sans manipulation inattendue. Cela fonctionne en permettant de fournir un hachage cryptographique (« *hash* ») auquel le fichier récupéré doit correspondre.

Voir aussi
----------

* Liste de diffusion (*mailing list*) (en anglais)
* Blog
* @mozsec on Twitter
EXSLT
=====


**Référence XSLT/XPath** : Éléments XSLT, Fonctions EXSLT, Fonctions XPath, Axes XPath

 EXSLT est un ensemble d'extensions à XSLT. Un certain nombre de modules existent ; ceux qui sont supportés par Firefox sont listés ci-dessous :

Common (`exsl`)

Fournit des éléments et des fonctions basiques d'extension.

Math (`math`)

Fournit des routines de comparaison de nœuds.

Expressions rationnelles (`regexp`)

Fournit des facilités pour l'utilisation d'expressions rationnelles dans la syntaxe JavaScript.

Sets (`set`)

Fournit des routines pour la manipulation d'ensembles.

Strings (`str`)

Fournit des fonctions de manipulation de chaînes.

### Utilisation de EXSLT

Pour utiliser une fonction EXSLT, il faut déclarer son espace de noms comme espace de noms d'extension dans votre feuille de style. Par exemple, pour utiliser le package regexp :


```xml
<xsl:stylesheet version="1.0"
 xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
 xmlns:regexp="http://exslt.org/regular-expressions">

  <xsl:template match="/">
    …
    <xsl:value-of select="regexp:replace(/root/@value, 'before', 'gi', 'AFTER')"/>
    …
  </xsl:template>

</xsl:stylesheet>
```

### Common

Le package EXSLT Common fournit des fonctions de base qui étendent les capacités de XSLT. L'espace de noms pour le package Common est `http://exslt.org/common`.

#### Fonctions

* exsl:node-set
* exsl:object-type
### Math

Le package EXSLT Math fournit des fonctions permettant de travailler avec des valeurs numériques et de comparer des nœuds. L'espace de noms pour le package Math est `http://exslt.org/math`.

#### Fonctions

* math:highest
* math:lowest
* math:max
* math:min
### Expressions rationnelles

Le package EXSLT Expressions rationnelles fournit des fonctions permettant de tester, chercher et remplace du texte à l'aide d'expressions rationnelles de style JavaScript.

L'espace de noms pour le package Expressions rationnelles est `http://exslt.org/regular-expressions`.

#### Fonctions

* regexp:match
* regexp:replace
* regexp:test
### Sets

Le package EXSLT Sets fournit des fonctions permettant des manipulations d'ensembles. L'espace de noms pour ces fonctions est `http://exslt.org/sets`.

#### Fonctions

* set:difference
* set:distinct
* set:intersection
* set:has-same-node
* set:leading
* set:trailing
### Strings

Le package EXSLT Strings fournit des fonctions permettant la manipulation de chaînes. L'espace de noms pour le package Strings est `http://exslt.org/strings`.

#### Fonctions

* str:concat
* str:split
* str:tokenize
### Voir aussi

* Site Web d'EXSLT
Valeurs
=======

Longueurs
---------

Plusieurs éléments de présentation MathML possèdent des attributs qui acceptent des valeurs pour mesurer des tailles ou des espacements. MathML accepte différentes unités et constantes pour spécifier les longueurs.

### Unités

| Uniét | Description |
| --- | --- |
| `em` | Unité `relative à la police` |
| `ex` | Unité `relative à la police`. (La hauteur "x" de l'élément, `1ex ≈ 0.5em` dans beaucoup de polices) |
| `px` | Pixels |
| `in` | Pouces (1 pouce = 2,54 centimètres) |
| `cm` | Centimètres |
| `mm` | Millimètres |
| `pt` | Points (1 point = 1/72 pouce) |
| `pc` | Picas (1 pica = 12 points) |
| `%` | Pourcentage de la valeur par défaut. |

### Constantes

| Constante | Valeur |
| --- | --- |
| `veryverythinmathspace` | 1/18`em` |
| `verythinmathspace` | 2/18`em` |
| `thinmathspace` | 3/18`em` |
| `mediummathspace` | 4/18`em` |
| `thickmathspace` | 5/18`em` |
| `verythickmathspace` | 6/18`em` |
| `veryverythickmathspace` | 7/18`em` |
| Les *contstantes* négatives ont été introduites avec Gecko 7.0 ([bug Firefox 650530](https://bugzil.la/650530)) |
| --- |
| `negativeveryverythinmathspace` | -1/18`em` |
| `negativeverythinmathspace` | -2/18`em` |
| `negativethinmathspace` | -3/18`em` |
| `negativemediummathspace` | -4/18`em` |
| `negativethickmathspace` | -5/18`em` |
| `negativeverythickmathspace` | -6/18`em` |
| `negativeveryverythickmathspace` | -7/18`em` |

Note : L'association avec des espaces de noms a été dépréciée dans MathML3 et a été retirée dans Gecko 15.0 (bug 673759).
Exemples
========

Cette rubrique rassemble des exemples pour vous aider à comprendre comment utiliser MathML dans l'affichage des formules mathématiques complexes au sein de vos pages Web.

Théorème de Pythagore

Petit exemple de démonstration du théorème de Pythagore.

Résolution de l'équation quadratique

Étapes de la résolution de l'équation quadratique.

Tests de rendu MathML

Un ensemble test de rendu de formules.
Preuve du théorème de Pythagore
===============================

Nous allons prouver le théorème de Pythagore :

**Définition :** dans un triangle rectangle, le carré de l'hypoténuse est égal à la somme des carrés des deux autres côtés (appelés cathètes). Ainsi, soient a et b les cathètes et c l'hypothénuse, on a 


a 
2

+ 

b 
2

= 

c 
2

.

**Preuve :** nous pouvons le prouver de façon algébrique en montrant que l'aire du grand carré est égale à l'aire du carré intérieur, ajoutée à l'aire des 4 triangles :



( 
a 
+ 
b 
) 

2 

= 

c 
2

+ 
4 
⋅ 
(

1 
2 

a 
b 
)


a 
2

+ 
2 
a 
b 
+ 

b 
2

= 

c 
2

+ 
2 
a 
b


a 
2

+ 

b 
2

= 

c 
2
MathML: Dériver la formule quadratique
======================================

Dans cette page, on rédige la démonstration de la détermination des racines d'un polynôme quadratique :




a

x
2

+ 
b

x

+ 
c

=
0



a

x
2

+ 
b

x

=
-
 c



x
2

+ 

b

a

x

=

-
c

a

On divise par le premier coefficient du polynôme.




x
2

+ 

b

a

x
+ 

b

2
a

2

=

-
c
(
4
a
)

a
(
4
a
)

+ 

b
2

4

a
2


On rajoute un terme pour avoir un carré.



(
x
+ 

b

2
a

)
(
x
+ 

b

2
a

)
=

b
2

- 
4
a
c

4

a
2



Ici, on obtient la valeur du discriminant.



(
x
+ 

b

2
a

)

2

=

b
2

- 
4
a
c

4

a
2






x
+ 

b

2
a

=
±

b
2

- 
4
a
c

4

a
2







x

=

-
b

2
a

±

b
2

- 
4
a
c

4

a
2







x

=

-
b
±

b
2

- 
4
a
c

2
a
mi
==

L'élément MathML `<mi>` indique que le contenu doit être affiché comme un **identifiant** (comme les noms de fonctions, de variables ou les constantes symboliques). Il est également possible de l'utiliser avec du texte en général pour annoter.

Attributs
---------

class, id, style

Afin d'être utilisés avec les feuilles de styles.

dir

Le sens de lecture du texte. Les valeurs possibles sont soit `ltr` (*left to right* pour gauche à droite) or `rtl` (*right to left* pour droite à gauche).

href

Un hyperlien pointant vers un URI donné.

mathbackground

La couleur de fond. Il est possible d'utiliser les codes au format `#rgb`, `#rrggbb` et les noms de couleurs HTML.

mathcolor

La couleur du texte. Il est possible d'utiliser les codes au format `#rgb`, `#rrggbb` et les noms de couleurs HTML.

mathsize

La taille du contenu. Les valeurs possibles sont :

* `small :` La police utilisée sera plus petite que la police courante.
* `normal :` Équivalent à 100% ou 1em.
* `big :` La police utilisée sera plus grande que la police courante.
* Une longueur quelconque.
* ou une valeur sans unité qui multiplie la taille par défaut.

mathvariant (implémenté en partie : voir bug Firefox 114365 et bug Firefox 162405)

La classe logique des identifiants, variant selon la typographie. Cela veut dire que, bien que les noms suggèrent une certaine mise en forme, les éléments d'une même classe seront traités de la même manière au sein d'une même expression. Cela peut, ou pas, impliquer un affichage avec la typographie mentionnée. Les valeurs suivantes sont autorisées :

* `normal` (La valeur par défaut pour plus d'un caractère)
* `bold`
* `italic` (La valeur par défaut pour un seul caractère)
* `bold-italic`

* `double-struck` Non implémenté
* `bold-fraktur` Non implémenté (la mise en gras fonctionne)
* `script` Non implémenté
* `bold-script` Non implémenté (la mise en gras fonctionne)
* `fraktur` Non implémenté

* `sans-serif`
* `bold-sans-serif`
* `sans-serif-italic`
* `sans-serif-bold-italic`
* `monospace`

* `initial` Non implémenté
* `tailed` Non implémenté
* `looped` Non implémenté
* `stretched` Non implémenté

Exemples
--------


```html
<math>
  <mi> y </mi>

  <mi> sin </mi>

  <mi mathvariant="monospace"> x </mi>

  <mi mathvariant="bold"> &pi; </mi>
</math>
```

Spécifications
--------------

| Specification |
| --- |
| MathML Core # dfn-mi |

Compatibilité des navigateurs
-----------------------------

BCD tables only load in the browser with JavaScript enabled. Enable JavaScript to view data.
<munderover>
============

 L'élément MathML `<munderover>` est utilisé pour attacher des accents et limites à la fois en-dessous et au-dessus d'une expression.
 La syntaxe est la suivante: `<munder> base script-en-dessous script-au-dessus </munder>`

Attributs
---------

accent

 Lorsqu'il vaut `true`, le script au dessus est un *accent*, qui est affiché plus près de la base.
 Lorsqu'il vaut `false` (valeur par défaut), le script au dessus est une *limite* au dessus de la base.


accentunder

 Lorsqu'il vaut `true`, le script en dessous est un *accent*, qui est affiché plus près de la base.
 Lorsqu'il vaut `false` (valeur par défaut), le script en dessous est une *limite* en dessous de la base.


align 
Obsolète

L'alignment des scripts en dessous et au dessus. Les valeurs possibles sont: `left`, `center`, et `right`.

class, id, style

Afin d'être utilisés avec les feuilles de styles.

href

Un hyperlien pointant vers un URI donné.

mathbackground

La couleur de fond. Il est possible d'utiliser les codes au format `#rgb`, `#rrggbb` et les noms de couleurs HTML.

mathcolor

La couleur du texte. Il est possible d'utiliser les codes au format `#rgb`, `#rrggbb` et les noms de couleurs HTML.

Exemples
--------

Exemple de rendu: 
 ![integral-0-infinity](/fr/docs/Web/MathML/Element/munderover/munderover.png)


```html
<math displaystyle="true">
  <munderover>
    <mo>
      &#x222B;
      <!--INTEGRAL-->
    </mo>
    <mn> 0 </mn>
    <mi>
      &#x221E;
      <!--INFINITY-->
    </mi>
  </munderover>
</math>
```

Spécifications
--------------

| Specification |
| --- |
| MathML Core # underscripts-and-overscripts-munder-mover-munderover |

Compatibilité des navigateurs
-----------------------------

BCD tables only load in the browser with JavaScript enabled. Enable JavaScript to view data.

Voir aussi
----------

* `<munder>` (Underscript)
* `<mover>` (Overscript)
<mover>
=======

L'élément MathML `<mover>` est utilisé pour attacher un accent ou une limite au-dessus d'une expression. La syntaxe est la suivante: `<mover> base overscript </mover>`

Attributs
---------

accent

 Lorsqu'il vaut `true` le script au-dessus est un *accent*, qui est affiché plus près de la base.
 Lorsqu'il vaut `false` (valeur par défaut) le script au-dessus est une *limite* au-dessus de la base.


align

L'alignement du script au-dessus. Les valeurs possibles sont : `left`, `center`, et `right`.

class, id, style

Afin d'être utilisés avec les feuilles de styles.

href

Un hyperlien pointant vers un URI donné.

mathbackground

La couleur de fond. Il est possible d'utiliser les codes au format `#rgb`, `#rrggbb` et les noms de couleurs HTML.

mathcolor

La couleur du texte. Il est possible d'utiliser les codes au format `#rgb`, `#rrggbb` et les noms de couleurs HTML.

Exemples
--------

Exemple de rendu: 
 ![x+y+z](/fr/docs/Web/MathML/Element/mover/mover.png)

Rendu dans votre navigateur : 


x 
+ 
y 
+ 
z 

⏞



```html
<math>
  <mover accent="true">
    <mrow>
      <mi> x </mi>
      <mo> + </mo>
      <mi> y </mi>
      <mo> + </mo>
      <mi> z </mi>
    </mrow>
    <mo>
      &#x23DE;
      <!--TOP CURLY BRACKET-->
    </mo>
  </mover>
</math>
```

Spécifications
--------------

| Specification |
| --- |
| MathML Core # underscripts-and-overscripts-munder-mover-munderover |

Compatibilité des navigateurs
-----------------------------

BCD tables only load in the browser with JavaScript enabled. Enable JavaScript to view data.

Voir aussi
----------

* `<munder>` (Underscript)
* `<munderover>` (Underscript-overscript pair)
maction
=======

 L'élément MathML `<maction>` permet de lier des actions à des (sous-)expressions.
 L'action est définie par l'attribut `actiontype` qui peut prendre plusieurs valeurs. Pour définir quels éléments fils sont affectés par l'action, il est possible d'utiliser l'attribut `selection`.

Attributs
---------

actiontype

L'action qui se produit pour cet élément. Les valeurs possibles sont :

* `statusline` : S'il y a un clic sur l'*expression* ou que le lecteur passe la souris sur celle-ci, le *message* est envoyé au statut du navigateur (*status line*). La syntaxe est la suivante : `<maction actiontype="statusline"> expression message </maction>.`
* `toggle` : Quand il y a un clic sur la sous-expression, la mise en forme des sous-expressions sélectionnées change. Ainsi chaque clic augmente la valeur de `selection`.
 La syntaxe est la suivante : `<maction actiontype="toggle" selection="entier-positif" > expression1 expression2 expressionN </maction>`.
* `tooltip` : Lorsque la souris passe au-dessus de l'*expression*, une info-bulle est affichée à proximité de l'expression.
 La syntaxe est la suivante : `<maction actiontype="tooltip"> expression message </maction>.`

class, id, style

Afin d'être utilisés avec les feuilles de styles.

href

Un hyperlien pointant vers un URI donné.

mathbackground

La couleur de fond. Il est possible d'utiliser les codes au format `#rgb`, `#rrggbb` et les noms de couleurs HTML.

mathcolor

La couleur du texte. Il est possible d'utiliser les codes au format `#rgb`, `#rrggbb` et les noms de couleurs HTML.

selection

L'élément fils auquel s'applique l'action. La valeur par défaut est `1`, ce qui correspond au premier élément fils.

Exemples
--------


```html
<math>
  <maction actiontype="toggle">
    <mfrac>
      <mn>6</mn>
      <mn>8</mn>
    </mfrac>

    <mfrac>
      <mrow>
        <mn>3</mn>
        <mo>&sdot;</mo>
        <mn>2</mn>
      </mrow>
      <mrow>
        <mn>4</mn>
        <mo>&sdot;</mo>
        <mn>2</mn>
      </mrow>
    </mfrac>

    <mfrac>
      <mn>3</mn>
      <mn>4</mn>
    </mfrac>
  </maction>
</math>
```

Spécifications
--------------

| Specification |
| --- |
| MathML Core # dfn-maction |

Compatibilité des navigateurs
-----------------------------

BCD tables only load in the browser with JavaScript enabled. Enable JavaScript to view data.
<msub>
======

L'élément MathML `<msub>` est utilisé pour attaché un indice à une expression. On utilise la syntaxe suivante: `<msub> base indice </msub>`.

Attributes
----------

class, id, style

Fournit pour être utilisé avec stylesheets.

href

Utilisé pour ajouter un hyperlien vers une URI.

mathbackground

La couleur d'arrière plan. Vous pouvez utiliser `#rgb`, `#rrggbb` et les noms de couleurs HTML.

mathcolor

La couleur du texte. Vous pouvez utiliser `#rgb`, `#rrggbb` et les noms de couleurs HTML.

subscriptshift

The minimum space by which to shift the subscript below the baseline of the expression, as a length value (en-US).

Example
-------

Image fixe: 
 ![x1](/fr/docs/Web/MathML/Element/msub/msub.png)

Rendu dans votre navigateur: 


X
1



```html
<math>
  <msub>
    <mi>X</mi>
    <mn>1</mn>
  </msub>
</math>
```

Spécifications
--------------

| Specification |
| --- |
| MathML Core # subscripts-and-superscripts-msub-msup-msubsup |

Compatibilité des navigateurs
-----------------------------

BCD tables only load in the browser with JavaScript enabled. Enable JavaScript to view data.

Voir aussi
----------

* `<msup> (en-US)` (Superscript)
* `<msubsup> (en-US)` (Subscript-superscript pair)
* `<mmultiscripts> (en-US)` (Prescripts and tensor indices)
merror
======

L'élément MathML `<merror>` est utilisé afin d'afficher des contenus en tant que messages d'erreur. Sous Firefox, ce message d'erreur est affiché de la même façon qu'un message d'erreur XML. Attention : cette erreur **n'est pas déclenchée** lorsque le contenu MahtML est incorrect ou mal formé. Ces deux cas de figure déclencheront une erreur d'analyse du XML (dans le cas de la notation XHTML de MathML), cette erreur n'ayant aucun lien avec `<merror>`.

Attributs
---------

class, id, style

Afin d'être utilisés avec les feuilles de styles.

href

Un hyperlien pointant vers un URI donné.

mathbackground

La couleur de fond. Il est possible d'utiliser les codes au format `#rgb`, `#rrggbb` et les noms de couleurs HTML.

mathcolor

La couleur du texte. Il est possible d'utiliser les codes au format `#rgb`, `#rrggbb` et les noms de couleurs HTML.

Exemple
-------


```html
<math>
  <merror>
    <mrow>
      <mtext> Division par zéro : </mtext>
      <mfrac>
        <mn> 1 </mn>
        <mn> 0 </mn>
      </mfrac>
    </mrow>
  </merror>
</math>
```

Spécifications
--------------

| Specification |
| --- |
| MathML Core # error-message-merror |

Compatibilité des navigateurs
-----------------------------

BCD tables only load in the browser with JavaScript enabled. Enable JavaScript to view data.
mfenced
=======

**Obsolète:** Cette fonctionnalité a été supprimée des standards du Web. Bien que quelques navigateurs puissent encore la supporter, elle est en cours d'éradication. Ne l'utilisez ni dans d'anciens projets, ni dans de nouveaux. Les pages et applications Web l'utilisant peuvent cesser de fonctionner à tout moment.

 L'élément MathML `<mfenced>` offre la possibilité d'ajouter des parenthèses ouvrantes et fermantes personnalisées ainsi que des séparateurs (comme les virgules ou points-virgules) à une expression.

**Attention :** Il a été supprimé de la dernière norme MathML et les navigateurs modernes ne le prennent plus en charge. Utilisez les éléments `<mrow> (en-US)` et `<mo> (en-US)` à la place.

Attributs
---------

class, id, style

Afin d'être utilisés avec les feuilles de styles.

close

Une chaîne de caractère pour le délimiteur fermant. La valeur par défaut est « `)` » et tous les blancs sont tronqués.

href 
Obsolète

Un hyperlien pointant vers un URI donné.

mathbackground 
Obsolète

La couleur de fond. Il est possible d'utiliser les codes au format `#rgb`, `#rrggbb` et les noms de couleurs HTML.

mathcolor 
Obsolète

La couleur du texte. Il est possible d'utiliser les codes au format `#rgb`, `#rrggbb` et les noms de couleurs HTML.


open

Une chaîne de caractère pour le délimiteur ouvrant. La valeur par défaut est « `(` » et tous les blancs sont tronqués.

separators

Une séquence de plusieurs caractères (zéro ou plus) à utiliser pour les séparateurs, éventuellement séparés par des blancs qui seront ignorés. La valeur par défaut est « , ». En définissant plus d'un caractère, il est possible d'utiliser différents séparateurs pour chaque argument de l'expression. Si jamais il y a trop de séparateurs, le surplus est ignoré. S'il n'y en a pas assez, le dernier séparateur est répété.

Exemples
--------

Exemple 1 : Le dernier séparateur est répété (`,`).

Exemple d'affichage: 
 ![{a;b;c,d,e}](/fr/docs/Web/MathML/Element/mfenced/mfenced01.png)

Affichage dans votre navigateur: 


a
b
c
d
e



```html
<math>
  <mfenced open="{" close="}" separators=";;,">
    <mi>a</mi>
    <mi>b</mi>
    <mi>c</mi>
    <mi>d</mi>
    <mi>e</mi>
  </mfenced>
</math>
```


Exemple 2 : Le séparateur en excès est ignoré (`,`).

Exemple d'affichage: 
 ![[a|b|c|d|e]](/fr/docs/Web/MathML/Element/mfenced/mfenced02.png)

Affichage dans votre navigateur: 


a
b
c
d
e



```html
<math>
  <mfenced open="[" close="]" separators="||||,">
    <mi>a</mi>
    <mi>b</mi>
    <mi>c</mi>
    <mi>d</mi>
    <mi>e</mi>
  </mfenced>
</math>
```

Spécifications
--------------

#### No specification found

No specification data found for `mathml.elements.mfenced`.  
Check for problems with this page or contribute a missing `spec_url` to mdn/browser-compat-data. Also make sure the specification is included in w3c/browser-specs.

Compatibilité des navigateurs
-----------------------------

BCD tables only load in the browser with JavaScript enabled. Enable JavaScript to view data.