Je suis plutot d'avis de faire un test avant contact avec la base.
Par exemple : il y a des mots clé SQL à bannire.
C'est très bon, je vais approfondir la chose. Un problème qui me vient comme ça : si le script se connecte pas, ça va bugger dans la page et le message d'erreur va donner des informations au pirate. Il faut donc que j'initialise une variable qui interdise aux require de la page d'être effectué, via un if (encore des conditions de plus, j'ai peur que ça surchage, mais trois if ne devrait pas changer grand chose).
Si le champs attend un int il faut lui donner un int et ne pas laisser le sgbd detecter l'erreur.
Je vais voir pour le faire là où c'est possible et en tout cas je vais forcer un masque pour les variables $_GET[].
Faire une page ou il y a le champs de formulaire et une page qui va recevoir les variables du form et accepter seulement les variables provenant de la page du champs de formulaire.
en base de la page du formulaire
$_SESSION['from'] = $_SERVER['SCRIPT_NAME']
fichier de traitement.
if($_SESSION['from']=='monfichierform.php'){
...
}else echo 'Petit filou va '
ça c'est bon aussi, mais je me demande si ce que je fais déjà n'est pas suffisant :
Je test à chaque fois si il y a au moins une variable de session genre
if(isset($_SESSION['numeroConnexion']))
Le gars peut-il encore se connecter et alors utiliser un formulaire bidon situé ailleurs que sur mon site ?
Eviter les nom explicite et qui represente le nom des champs SQL.
Je m'étais déjà dis ça, j'ai même lu un post sur le sujet ici, et les gars disait c'est pas grave...
contre le vol de session, on peut changer le PHPSESSID à chaque chargement de page, dans un petit script en include
J'ai lu pas mal de post ici même où ils disent que l'on peut compareur deux valeur de session : une dans l'url et un en cookie (ou les deux en cookie peut être) : si un gars chope la session, il n'a pas l'autre numéro situé chez le client, dans le cookie : la comparaison foire ==> les deux sont déconnecté (bon là j'abrège, mais c'était ça l'idée).
D'autres ruses de sioux ? A part s'attaquer à la base par injection sql, tenter une attaque xss, pirater une session ou tout ce que j'ai dit plus haut, que peut faire le gars ?
Pas grand chose de plus je pense, hormis attaquer le serveur. Après ce sont les méthodes pour faire ces attaques qui diffèrent, c'est ça ?
Partager