Comment bloquer les injections SQL d'une page comme celle-ci ... http: //u.neighborrow.com/items/recentComment bloquer les injections SQL dans CakePHP
Répondre
CakePHP vous protège déjà contre l'injection SQL si vous utilisez les méthodes ORM de CakePHP (comme find() et save()) et la notation de tableau appropriée (ie. Array ('champ' => $ value)) au lieu de SQL brut. Pour la désinfection par rapport à XSS, il est généralement préférable d'enregistrer le code HTML brut dans la base de données sans modification et de le désinfecter au moment de la sortie/de l'affichage.
Cela devrait vous donner une bonne idée de la façon de le faire. Une fois que vous avez fait cela, vous pouvez faire des appels pour désinfecter statiquement.
CakePHP prend soin. Read their book.
Vous n'avez besoin de désinfecter que dans les rares cas où vous devez écrire des requêtes brutes.
requête Raw est:
$this->User->query("select username from users where email='$email_received_from_user_form'");
avant d'exécuter ce que vous devez:
App::import('Sanitize');
$email_received_from_user_form = Sanitize::paranoid($email_received_from_user_form, array('@', '_', '-', '.'));
Si elle est utilisée aseptisation de données droite supprimer/modifier tous les caractères malicieux dans la requête (sans injections sql) .
Voir ici: http://book.cakephp.org/2.0/en/core-utility-libraries/sanitize.html
Une fois que vous apprendrez tout sur les données Sanitization essayez d'utiliser jamais. Utilisez la manière CakePHP comme ceci:
$this->User->field('username', array('email' => $email_received_from_user_form));
je ce cas, vous ne devez pas vous inquiéter du tout sur les injections SQL. Vous ne devriez jamais utiliser de requêtes brutes à moins que vous n'ayez pas d'autre choix.
Etant donné que le lien ne fonctionne pas – Sadikhasan