sanitized _POST (#1)

fix for XSS
Cette révision appartient à :
Albirew 2022-05-28 16:49:39 +02:00
Parent 9a5e46fcff
révision b4110217b0
9 fichiers modifiés avec 26 ajouts et 29 suppressions

Voir le fichier

@ -1,6 +1,7 @@
<?php
require 'classes/CommentNews.php';
$_POST = filter_input_array(INPUT_POST, FILTER_SANITIZE_STRING); // prevent XSS
if(isset($_POST["fd_idnews"]) && !empty($_POST["fd_idnews"]) && isset($_POST["fd_name"]) && !empty($_POST["fd_name"]) && isset($_POST["fd_content"]) && !empty($_POST["fd_content"]) && empty($_POST["fd_dumbot"])){
$idnews=$_POST["fd_idnews"];
@ -15,5 +16,4 @@ require 'classes/CommentNews.php';
//On appelle la méthode qui va enregistrer le commmentaire dans la bdd
$postCom->ajouterCom($nom, $contenu, $idnews);
}
?>

Voir le fichier

@ -1,6 +1,7 @@
<?php
require 'classes/CommentProjet.php';
$_POST = filter_input_array(INPUT_POST, FILTER_SANITIZE_STRING); // prevent XSS
if(isset($_POST["fd_idprojet"]) && !empty($_POST["fd_idprojet"]) && isset($_POST["fd_name"]) && !empty($_POST["fd_name"]) && isset($_POST["fd_content"]) && !empty($_POST["fd_content"]) && empty($_POST["fd_dumbot"])){
$idprojet=$_POST["fd_idprojet"];
@ -15,5 +16,4 @@ require 'classes/CommentProjet.php';
//On appelle la méthode qui va enregistrer le commmentaire dans la bdd
$postCom->ajouterCom($nom, $contenu, $idprojet);
}
?>

Voir le fichier

@ -1,9 +1,7 @@
<?php
$_POST = filter_input_array(INPUT_POST, FILTER_SANITIZE_STRING); // prevent XSS
if(isset($_POST["fd_name"]) && !empty($_POST["fd_name"]) && isset($_POST["fd_content"]) && !empty($_POST["fd_content"]) && empty($_POST["fd_dumbot"])){
$nom=$_POST["fd_name"];
$email=$_POST["fd_mail"]; // PAS OBLIGATOIRE
$contenu=$_POST["fd_content"];
@ -12,5 +10,4 @@
// echo "contenu : ".$contenu;
include("classes/mailer.php");
}
?>

Voir le fichier

@ -1,6 +1,7 @@
<?php
require 'classes/Diremerci.php';
$_POST = filter_input_array(INPUT_POST, FILTER_SANITIZE_STRING); // prevent XSS
if(isset($_POST["confim"]) && !empty($_POST["confim"]) && isset($_POST["fd_idnews"]) && !empty($_POST["fd_idnews"])){
$id_news=$_POST["fd_idnews"];// !!!!! attention, valeur de type string pas int
@ -12,5 +13,4 @@ require 'classes/Diremerci.php';
//On appelle la méthode qui va enregistrer le merci dans la bdd
$postCom->ajouterMerci($id_news, $confirmation);
}
?>

Voir le fichier

@ -1,9 +1,7 @@
<?php
$_POST = filter_input_array(INPUT_POST, FILTER_SANITIZE_STRING); // prevent XSS
if(isset($_POST["fd_errortype"]) && !empty($_POST["fd_errortype"]) && isset($_POST["fd_errortitre"]) && !empty($_POST["fd_errortitre"]) && isset($_POST["fd_content"]) && !empty($_POST["fd_content"]) && empty($_POST["fd_dumbot"])){
$errortype=$_POST["fd_errortype"];
$errortitre=$_POST["fd_errortitre"];
$contenu=$_POST["fd_content"];
@ -12,5 +10,4 @@
echo "contenu : ".$contenu;
include("classes/errormailer.php");
}
?>

Voir le fichier

@ -42,7 +42,6 @@ require 'Commentaires.php';
|############################################################|
|###########_____SITE V3 - POLE DEVELOPPEMENT_____###########|
* @author Yumemi <yumemi.kamachi@gmail.com>
* @version 1.0
* */
@ -51,24 +50,20 @@ require 'Commentaires.php';
public function ajouterCom($pseudo, $commentaire, $idNews)
{
//Protection des variables
//Plus besoin de mysl_real_escape_string en php5,
//la fonction execute protège les variables de l'injection sql
$pseu = htmlspecialchars($pseudo);
$pseu = filter_var($pseu,FILTER_SANITIZE_STRING);
$com = htmlspecialchars($commentaire);
$com = filter_var($com,FILTER_SANITIZE_STRING);
try
{
$ajout = $this->connect->prepare('INSERT INTO commentaire_news SET pseudo = :pseu, commentaire = :comm, id_news = :idNews, timestamp = :time');
$ajout->bindValue(':pseu', $pseu);
$ajout->bindValue(':comm', $com);
$ajout->bindValue('idNews', $idNews, PDO::PARAM_INT);
$ajout->bindValue(':time', time(), PDO::PARAM_INT);
$ajout->execute();
$ajout->closeCursor();
echo 'Votre commentaire a bien été ajouté';
}
catch(Exception $e)

Voir le fichier

@ -29,7 +29,6 @@ require 'Commentaires.php';
* Cette classe hérite de la classe Commentaires.
*
* Elle sert à gérer les commantaires des projets du site de la HHH.
___ ___
___ __| | | |__ ___
/ / / /| | | |\ \ \ \
@ -52,21 +51,19 @@ require 'Commentaires.php';
{
//Protection des variables
$pseu = htmlspecialchars($pseudo);
$pseu = filter_var($pseu,FILTER_SANITIZE_STRING);
$com = htmlspecialchars($commentaire);
$com = filter_var($com,FILTER_SANITIZE_STRING);
try
{
$ajout = $this->connect->prepare('INSERT INTO commentaire_projets SET pseudo = :pseu, commentaire = :comm, id_projet = :idPro, timestamp = :time');
$ajout->bindValue(':pseu', $pseu);
$ajout->bindValue(':comm', $com);
$ajout->bindValue('idPro', $idProjet, PDO::PARAM_INT);
$ajout->bindValue(':time', time(), PDO::PARAM_INT);
$ajout->execute();
$ajout->closeCursor();
echo 'Votre commentaire a bien été ajouté';
}
catch(Exception $e)

Voir le fichier

@ -3,6 +3,7 @@ require 'classes/ProjetManager.php';
if(isset($_POST["fd_note"]) && !empty($_POST["fd_note"]) && isset($_POST["fd_projet"]) && !empty($_POST["fd_projet"])){
$_POST = filter_input_array(INPUT_POST, FILTER_SANITIZE_STRING); // prevent XSS
$note=$_POST["fd_note"];// !!!!! attention, valeur de type string pas int, de -1 à 2
$idprojet=$_POST["fd_projet"];// !!!!! attention, valeur de type string
echo "note : ".$note."<br/>"; // !!!!! attention, valeur de type string pas int

Voir le fichier

@ -403,8 +403,13 @@ function getcommnews(news) {
// prévisualiser un commentaire
$("#preview_commentaire_button").click(function(){
$("#commpreview, #commpreviewp").remove();
var pseudo=$("#depot_commentaire_depotbox").find("input[name='pseudo']").val();
var commentaire=nl2br($("#depot_commentaire_depotbox").find("textarea[name='commentaire']").val());
var sanitizeHTML = function (str) {
return str.replace(/[^\w. ]/gi, function (c) {
return '&#' + c.charCodeAt(0) + ';';
});
};
var pseudo=encodeURI($("#depot_commentaire_depotbox").find("input[name='pseudo']").val());
var commentaire=sanitizeHTML(nl2br($("#depot_commentaire_depotbox").find("textarea[name='commentaire']").val()));
if(pseudo.trim()==="" || commentaire.trim()===""){
alert("Il n'y a rien à prévisualiser banane, il faut remplir tous les champs.");
return;
@ -415,10 +420,15 @@ function getcommnews(news) {
// pour envoyer un commentaire
$("#depot_commentaire_button").click(function(){
var sanitizeHTML = function (str) {
return str.replace(/[^\w. ]/gi, function (c) {
return '&#' + c.charCodeAt(0) + ';';
});
};
// on envoi un nouveau commentaire
var idnews=$(this).attr("data-commnewsid");
var pseudo=$("#depot_commentaire_depotbox").find("input[name='pseudo']").val();
var commentaire=$("#depot_commentaire_depotbox").find("textarea[name='commentaire']").val();
var pseudo=encodeURI($("#depot_commentaire_depotbox").find("input[name='pseudo']").val());
var commentaire=sanitizeHTML($("#depot_commentaire_depotbox").find("textarea[name='commentaire']").val());
var dumbot=$("#depot_commentaire_depotbox").find("input[name='dumbot']").val();
postcommnews(idnews,pseudo,commentaire,dumbot);
@ -429,7 +439,7 @@ function getcommnews(news) {
function postcommnews(news,pseudo,commentaire,dumbot){
// vérification des champs obligatoire
if(pseudo.trim()==="" || commentaire.trim()===""){
if(pseudo.trim()==="" || commentaire.trim()==="" || pseudo.trim()==="&#34;>" || commentaire.trim()==="&#34;>") {
var verif=false;
}else {
var verif=true;