j'ai lu des articles sur le fait qu'il fallait sécuriser ses requetes, et que PDO avec prepare() permettait de renforcer la sécurité.
J'ai un petit bout de code pour exemple :
Code : Tout sélectionner
// je récupère mon id passé dans la page par : http://www.monsite.fr/projet-details.php?id=12
$id = $_GET['id'];
$sql_produits = "SELECT * FROM produits WHERE id=:id";
$req_produits = $pdo->prepare($sql_produits);
$req_produits->bindParam(':id', $id, PDO::PARAM_INT);
$req_produits->execute();
$enr_produits = $req_produits->fetch();
si j'ai fait :
Code : Tout sélectionner
// en passant ce paramêtre je pense que j'ai protégé le fait qu'un petit malin passe autre chose qu'un entier dans la var $id
$req_produits->bindParam(':id', $id, PDO::PARAM_INT);
Et si oui, quand je teste par exemple id=toto, je n'ai pas de message d'erreur... est ce normal ?
Est ce qu'il serait préférable d'ajouter quand même dès le départ quelque chose comme :
Code : Tout sélectionner
$id = htmlspecialchars($id);
Code : Tout sélectionner
if (!is_int ($id)) echo 'Erreur';
merci de votre aide