sql >> Database >  >> RDS >> Mysql

hoe SQL-injectie van deze query te voorkomen?

Wanneer de tijdelijke aanduiding wordt geciteerd, is het geen tijdelijke aanduiding, maar de letterlijke waarde. Probeer het op deze manier:

$a = Model::model()->findAllBySql(
                      'SELECT * FROM table WHERE name like :name',
                      array(":name"=> '%' . $_GET['name'] . '%')
                      );

Het stuurprogramma voegt momenteel automatisch de dubbele punt toe, maar in de toekomst is dit misschien niet het geval. Het is het beste om de naam overeen te laten komen met de tijdelijke aanduiding.




  1. Lijst met alle triggers in Oracle Database

  2. Hoe entiteit (doctrine) in te stellen voor databaseweergave in Symfony 2

  3. Vergelijk twee MySQL-databases

  4. TreeView-knooppunten opnieuw rangschikken met slepen en neerzetten