Je travaille sur un site où les pages de contenu sont traitées avec mod_rewrite
et j'essaie de rendre l'URL géré avec mod_rewrite
protégé de SQL injections
avec une certaine restriction char , car les utilisateurs peuvent créer des pages contenu comme celui-ci:URL et mod_rewrite: utiliser de nombreux caractères spéciaux et protéger les données contre les attaques
http://site.com/content-type/Page-created-by-user
Mes doutes viennent quand ils insèrent quelque chose comme:
http://site.com/architect/Giovanni+Dall'Agata
J'ai besoin d'insérer '
ombles parce que je peux avoir des noms comme ceci par exemple des architectes célèbres, mais je ne sais pas si je peux garder des données sûres et comment empêcher SQL injections
avec ce caractère.
Dois-je faire quelque chose de particulier pour prévenir les attaques?
J'utilise PDO class
dans PHP
comme ceci:
$architect = strip_tags (trim ($_REQUEST["architect"]));
// pdo class etc..
$pdo_stmt->bindParam (":arch", $architect, PDO::PARAM_STR);
// and the other code here...
Les utilisateurs ne peuvent créer des pages avec ces caractères: < >/\ * ? =
dois-je interdire '
et "
aussi? Ou devrais-je autoriser un seul des caractères '
et "
ou puis-je les utiliser ensemble et protéger le serveur?
Du point de vue de la conception, vous voulez vraiment être garder contre l'injection SQL aussi proche de la base de données que possible au lieu de compter sur d'autres couches de votre application - comme vos règles mod_rewrite - pour assurer cette protection. Votre utilisation des paramètres liés dans PDO est fortement recommandée à cet égard. – Schwartzie