PHP filtre
Filtres PHP sont utilisés pour valider et de filtrer les données provenant de sources d'insécurité, comme l'entrée d'utilisateur.
Qu'est-ce qu'un filtre PHP?
Un filtre PHP est utilisé pour valider et de filtrer les données provenant de sources d'insécurité.
Pour tester, valider et de filtrer l'entrée d'utilisateur ou des données personnalisées est une partie importante de toute application web.
L'extension PHP filtre est conçu pour rendre le filtrage de données plus facile et plus rapide.
Pourquoi utiliser un filtre?
Presque toutes les applications Web dépendent de l'entrée externe. Habituellement, cela provient d'un utilisateur ou une autre application (comme un service Web). En utilisant des filtres, vous pouvez être sûr que votre application obtient le type d'entrée correcte.
Vous devriez toujours filtrer toutes les données externes!
Entrée filtrage est l'une des questions les plus importantes de sécurité des applications.
Qu'est-ce que des données externes?
- Les données d'entrée d'un formulaire
- Cookies
- Les services Web de données
- Variables du serveur
- Résultats de la requête de base de données
Fonctions et filtres
Pour filtrer une variable, utilisez l'une des fonctions de filtres suivants:
- filter_var () - Filtre une variable unique avec un filtre spécifique
- filter_var_array () - Filtre à plusieurs variables avec les filtres identiques ou différents
- filter_input - Obtenez une variable d'entrée et de la filtrer
- filter_input_array - Obtenez plusieurs variables d'entrée et de les filtrer avec des filtres identiques ou différents
Dans l'exemple ci-dessous, nous validons un entier en utilisant la fonction filter_var ():
<?php
$int = 123;
if(!filter_var($int, FILTER_VALIDATE_INT))
{
echo("Integer is not valid");
}
else
{
echo("Integer is valid");
}
?>
$int = 123;
if(!filter_var($int, FILTER_VALIDATE_INT))
{
echo("Integer is not valid");
}
else
{
echo("Integer is valid");
}
?>
Le code utilise au-dessus du "FILTER_VALIDATE_INT" filtre pour filtrer la variable. Depuis l'entier est valide, la sortie du code ci-dessus sera: "Integer est valide".
Si nous essayons avec une variable qui n'est pas un entier (comme "123abc"), la sortie sera: "Integer n'est pas valide".
Pour une liste complète des fonctions et des filtres, visitez notre référence PHP Filter.
Validation et assainissement
Il existe deux types de filtres:
Validation des filtres:
- Sont utilisés pour valider les entrées utilisateur
- Règles strictes de format (comme URL ou E-Mail de validation)
- Retourne le type attendu en cas de succès ou FALSE en cas d'échec
Assainissement: filtres
- Sont utilisés pour autoriser ou interdire les caractères spécifiés dans une chaîne
- Pas de règles de format de données
- Toujours remettre la chaîne
Options et Drapeaux
Options et drapeaux sont utilisés pour ajouter des options de filtrage pour les filtres spécifiés.
Différents filtres ont des options différentes et des drapeaux.
Dans l'exemple ci-dessous, nous validons un entier en utilisant l'filter_var () et le "min_range" et "max_range" Options:
<?php
$var=300;
$int_options = array(
"options"=>array
(
"min_range"=>0,
"max_range"=>256
)
);
if(!filter_var($var, FILTER_VALIDATE_INT, $int_options))
{
echo("Integer is not valid");
}
else
{
echo("Integer is valid");
}
?>
$var=300;
$int_options = array(
"options"=>array
(
"min_range"=>0,
"max_range"=>256
)
);
if(!filter_var($var, FILTER_VALIDATE_INT, $int_options))
{
echo("Integer is not valid");
}
else
{
echo("Integer is valid");
}
?>
Comme le code ci-dessus, les options doivent être mis dans un tableau associatif avec le nom "d'options". Si un indicateur est utilisé, il n'a pas besoin d'être dans un tableau.
Depuis l'entier est "300" il n'est pas dans la plage spécifiée, et la sortie du code ci-dessus sera: "Integer n'est pas valide".
Pour une liste complète des fonctions et des filtres, visitez notre référence PHP Filter. Vérifiez chaque filtre pour voir quelles options sont disponibles et des drapeaux.
Valider l'entrée
Essayons de valider une entrée à partir d'un formulaire.
La première chose que nous devons faire est de confirmer que les données d'entrée, nous recherchons des existe.
Ensuite, nous avons filtrer les données d'entrée en utilisant le filter_input () la fonction.
Dans l'exemple ci-dessous, la variable d'entrée "email" est envoyé à la page PHP:
<?php
if(!filter_has_var(INPUT_GET, "email"))
{
echo("Input type does not exist");
}
else
{
if (!filter_input(INPUT_GET, "email", FILTER_VALIDATE_EMAIL))
{
echo "E-Mail is not valid";
}
else
{
echo "E-Mail is valid";
}
}
?>
if(!filter_has_var(INPUT_GET, "email"))
{
echo("Input type does not exist");
}
else
{
if (!filter_input(INPUT_GET, "email", FILTER_VALIDATE_EMAIL))
{
echo "E-Mail is not valid";
}
else
{
echo "E-Mail is valid";
}
}
?>
Exemple Expliqué
L'exemple ci-dessus a une entrée (email) envoyé à l'aide de la méthode "GET":
- Vérifiez si une variable "email" d'entrée de la "GET" type existent
- Si la variable d'entrée existe, vérifier si il est une adresse e-mail
Désinfectez entrée
Essayons de nettoyage en place d'un URL envoyé à partir d'un formulaire.
Nous avons d'abord confirmer que les données d'entrée, nous recherchons des existe.
Ensuite, nous désinfecter les données d'entrée en utilisant le filter_input () la fonction.
Dans l'exemple ci-dessous, la variable d'entrée "url" est envoyé à la page PHP:
<?php
if(!filter_has_var(INPUT_POST, "url"))
{
echo("Input type does not exist");
}
else
{
$url = filter_input(INPUT_POST,
"url", FILTER_SANITIZE_URL);
}
?>
if(!filter_has_var(INPUT_POST, "url"))
{
echo("Input type does not exist");
}
else
{
$url = filter_input(INPUT_POST,
"url", FILTER_SANITIZE_URL);
}
?>
Exemple Expliqué
L'exemple ci-dessus a une entrée (url) envoyé à l'aide de la méthode "POST":
- Vérifiez si le "url" d'entrée de la "POST" type existe
- Si la variable d'entrée existe, désinfecter (à emporter caractères non valides) et le stocker dans la variable $ url
Si la variable d'entrée est une chaîne comme ça »http://www.W3ååSchøøools.com/", la variable $ url après la désinfection devrait ressembler à ceci:
http://www.W3Schools.com/
Filtrez les entrées multiples
Une forme presque toujours constitués de plus d'un champ de saisie. Pour éviter d'appeler les fonctions filter_var ou filter_input encore et encore, nous pouvons utiliser la ou les fonctions filter_var_array filter_input_array.
Dans cet exemple nous utilisons le filter_input_array () pour filtrer trois variables GET. Le reçu variables GET est un nom, un âge et une adresse e-mail:
<?php
$filters = array
(
"name" => array
(
"filter"=>FILTER_SANITIZE_STRING
),
"age" => array
(
"filter"=>FILTER_VALIDATE_INT,
"options"=>array
(
"min_range"=>1,
"max_range"=>120
)
),
"email"=> FILTER_VALIDATE_EMAIL
);
$result = filter_input_array(INPUT_GET, $filters);
if (!$result["age"])
{
echo("Age must be a number between 1 and 120.<br />");
}
elseif(!$result["email"])
{
echo("E-Mail is not valid.<br />");
}
else
{
echo("User input is valid");
}
?>
$filters = array
(
"name" => array
(
"filter"=>FILTER_SANITIZE_STRING
),
"age" => array
(
"filter"=>FILTER_VALIDATE_INT,
"options"=>array
(
"min_range"=>1,
"max_range"=>120
)
),
"email"=> FILTER_VALIDATE_EMAIL
);
$result = filter_input_array(INPUT_GET, $filters);
if (!$result["age"])
{
echo("Age must be a number between 1 and 120.<br />");
}
elseif(!$result["email"])
{
echo("E-Mail is not valid.<br />");
}
else
{
echo("User input is valid");
}
?>
Exemple Expliqué
L'exemple ci-dessus a trois entrées (nom, âge et adresse électronique) qui lui sont envoyés en utilisant la méthode "GET":
- Définir un tableau contenant le nom des variables d'entrée et les filtres utilisés sur les variables d'entrée spécifiés
- Appelez le filter_input_array () avec les variables d'entrée GET et le tableau que nous venons de mettre
- Cochez la case "âge" et "email" variables dans le résultat variable $ pour les entrées non valides. (Si aucune des variables d'entrée ne sont pas valides, cette variable d'entrée sera FALSE après la filter_input_array () la fonction)
Le deuxième paramètre de la filter_input_array () peut être un tableau ou un ID unique filtre.
Si le paramètre est un identifiant unique filtre toutes les valeurs dans le tableau d'entrée sont filtrés par le filtre spécifié.
Si le paramètre est un tableau, il doit suivre ces règles:
- Doit être un tableau associatif contenant une variable d'entrée comme une clé du tableau (comme la variable "âge" d'entrée)
- La valeur du tableau doit être un ID de filtre ou d'un tableau précisant les filtre, les drapeaux et les options
Utiliser le rappel filtre
Il est possible d'appeler une fonction définie par et l'utiliser comme un filtre en utilisant le filtre FILTER_CALLBACK. De cette façon, nous avons le plein contrôle de filtrage des données.
Vous pouvez créer votre propre fonction de l'utilisateur défini ou utiliser une fonction existante PHP
La fonction que vous souhaitez utiliser pour filtrer est spécifié de la même manière comme une option est spécifiée. Dans un tableau associatif avec le nom "les options"
Dans l'exemple ci-dessous, nous utilisons une fonction utilisateur de convertir la totalité "_" pour les espacements:
<?php
function convertSpace($string)
{
return str_replace("_", " ", $string);
}
$string = "Peter_is_a_great_guy!";
echo filter_var($string, FILTER_CALLBACK,
array("options"=>"convertSpace"));
?>
function convertSpace($string)
{
return str_replace("_", " ", $string);
}
$string = "Peter_is_a_great_guy!";
echo filter_var($string, FILTER_CALLBACK,
array("options"=>"convertSpace"));
?>
Le résultat à partir du code ci-dessus devrait ressembler à ceci:
Peter is a great guy!
Exemple Expliqué
L'exemple convertit au-dessus de tous les "_" pour les espacements:
- Créer une fonction pour remplacer "_" pour les espacements
- Appelez le filter_var () avec le filtre FILTER_CALLBACK et un tableau contenant notre fonction
Good day very nice website!! Guy .. Beautiful .
ReplyDelete. Superb .. I will bookmark your blog and take the feeds also?
I'm happy to search out numerous helpful information here in the put up, we need develop extra strategies in this regard, thanks for sharing. . . . . .
My webpage - housekeeping jobs in rochester ny
When some one searches for his required thing, therefore he/she needs to be available that in detail, so that thing is maintained
ReplyDeleteover here.
hardwood floor
My web blog: installing hardwood floors
I am really inspired with your writing skills as neatly as with the layout to your blog.
ReplyDeleteIs this a paid theme or did you modify it your self?
Anyway stay up the excellent quality writing, it is rare to peer
a nice weblog like this one today..
Also visit my webpage :: provillus review
Do you have a spam problem on this site; I also am a blogger, and
ReplyDeleteI was wanting to know your situation; we have created some nice procedures and
we are looking to trade strategies with others, be
sure to shoot me an email if interested.
accredited business degree
my homepage - pflugerville texas
Oneway links need normally got a few touching on how very perfectly an internet site rated
ReplyDeletefrom search generator end consequence web sites (SERPs).
Though, up to now, all these formulas are not manufactured to give consideration to men and
women doing this to defraud comes with through rerepowering high on inlinks in webweb
internet web-web pages which have nothing but connections about
them, an absense of articles from a actual
importance. Internet sites instantly had become which is called "backwebrelationship harvesting" coupled with were chosen just with webmasters to maximize the particular grade of the a lot
of places.
In addition to this put into technique, website commonly developed you web page expressly to house reciprocal
backlinks to your site known as a web resources sheet.
It searched by people today setting up reciprocal links to higher use their site and google vehicle improvement but currently offered absolutely simply zero normal articles and
other content and articles. Quite often, reciprocal
hyperback backinbound one-way one way back-shortcuts was quite possibly market anywhere
from places which in fact have certainly basically little redirectly
significance together so. Consequently, in any backlinks to your site sheet you might find a keyword rich link towards a product site after the
internet hosting the web link had to do with the ageing.
The idea undoubtedly put together little or no more perfect sense typically compensate any such behind the scenes positions adjustments!
Search engines has been the primary principal the search engines
like bing get started on examining find out the best ways to treat reliable hyperback backinbound one-way one way back-shortcuts who had meaning plus increased text-based
content with a web pages instead of gratifying expertise, unfortunately
relatively corrupt habits with fooling around the search engine consequences
with installation bargains and also dunkelhrrutige do
not lik tactics. These products preserved applying inbound links as being a determinant about standing, but additionally
grew a protocol to search for special quality connections and
also punishing connection farming as well schokohrrutige cheap tall sun hardhard hat moves.
A suitable one way link is absolutely simple and easy. All the time another web site
places some Web link link on webweb internet web page
of which links particularly back in your websites,
it's called an important one-way link.
Foods url links crucial? Given that advice give individuals a site, along with while they guide enhance your site's internet search results reputation.
Doing this as a result of only a click straight forward backchek out
your site? That's right! Unfortunately provided that you're sure your
variation anywhere from varieties of back link and then understand how to get the very best mixture of varieties to obtain the the majority
of targeted visitors your web blog. backlinkbatch
Take heed, despite the fact, and there is some good and bad points to each and every style of inlink,
and whenever you have used them inadequately virtually any unhealthy mix
it is possible to wind up in reality cards optimisation by mistake.