Documentation du code de SPIP et de ses plugins

SPIP

sandbox.php

Gestion d'une sécurisation des squelettes

Une surcharge de ce fichier pourrait permettre :

  • de limiter l'utilisation des filtres à l'aide d'une liste d’inclusion ou d’exclusion,
  • de rendre inactif le PHP écrit dans les squelettes
  • de refuser l'inclusion de fichier PHP dans les squelettes

Table of Contents

Constants

CODE_INCLURE_SCRIPT  = 'if (!($path = %s) OR !is_readable($path)) erreur_squelette(array("fichier_introuvable", array("fichier" => "%s")), array(%s)); else { $contexte_inclus = %s; include $path; } '

Functions

sandbox_composer_texte()  : string
Composer le code d'exécution d'un texte
sandbox_composer_filtre()  : string
Composer le code d'exécution d'un filtre
sandbox_composer_inclure_php()  : string
Composer le code d'inclusion PHP
sandbox_composer_interdire_scripts()  : string
Composer le code de sécurisation anti script
sandbox_filtrer_squelette()  : mixed|string
Appliquer des filtres sur un squelette complet
echapper_php_callback()  : string|array<string|int, mixed>
Callback pour échapper du code PHP (les séquences `<?php ... ?>`)

Constants

CODE_INCLURE_SCRIPT

public mixed CODE_INCLURE_SCRIPT = 'if (!($path = %s) OR !is_readable($path)) erreur_squelette(array("fichier_introuvable", array("fichier" => "%s")), array(%s)); else { $contexte_inclus = %s; include $path; } '

Functions

sandbox_composer_texte()

Composer le code d'exécution d'un texte

sandbox_composer_texte(string $texte, Champ &$p) : string

En principe juste un echappement de guillemets sauf si on veut aussi echapper et interdire les scripts serveurs dans les squelettes

Parameters
$texte : string

texte à composer

$p : Champ

Balise qui appelle ce texte

Return values
string

texte

sandbox_composer_filtre()

Composer le code d'exécution d'un filtre

sandbox_composer_filtre(string $fonc, string $code, string $arglist, Champ &$p[, int $nb_arg_droite = 1000 ]) : string
Parameters
$fonc : string
$code : string
$arglist : string
$p : Champ
$nb_arg_droite : int = 1000

nb d'arguments à droite du filtre dans le source spip |fff{a,b,c} Balise qui appelle ce filtre

Return values
string

sandbox_composer_inclure_php()

Composer le code d'inclusion PHP

sandbox_composer_inclure_php(string $fichier, Champ &$p, string $_contexte) : string
Parameters
$fichier : string
$p : Champ

Balise créant l'inclusion

$_contexte : string

Chaine PHP qui écrira le contexte 'array(...)'

Return values
string

sandbox_composer_interdire_scripts()

Composer le code de sécurisation anti script

sandbox_composer_interdire_scripts(string $code, Champ &$p) : string
Parameters
$code : string
$p : Champ

Balise sur laquelle s'applique le filtre

Return values
string

sandbox_filtrer_squelette()

Appliquer des filtres sur un squelette complet

sandbox_filtrer_squelette(array<string|int, mixed> $skel, string $corps, array<string|int, mixed> $filtres) : mixed|string

La fonction accèpte plusieurs tableaux de filtres à partir du 3ème argument qui seront appliqués dans l'ordre

Parameters
$skel : array<string|int, mixed>
$corps : string
$filtres : array<string|int, mixed>

Tableau de filtres à appliquer.

Tags
uses
echapper_php_callback()
Return values
mixed|string

echapper_php_callback()

Callback pour échapper du code PHP (les séquences `<?php ... ?>`)

echapper_php_callback([array<string|int, mixed>|null $r = null ]) : string|array<string|int, mixed>

Rappeler la fonction sans paramètre pour obtenir les substitutions réalisées.

Parameters
$r : array<string|int, mixed>|null = null
  • array : ce sont les captures de la regex à échapper
  • NULL : demande à dépiler tous les échappements réalisés
Tags
see
sandbox_filtrer_squelette()
used-by
sandbox_filtrer_squelette()
Return values
string|array<string|int, mixed>
  • string : hash de substitution du code php lorsque $r est un array
  • array : Liste( liste des codes PHP, liste des substitutions )

        
On this page

Search results