sql >> Database >  >> RDS >> Mysql

Query's met MySQL-parameter

Pas op voor het gebruik van string-interpolatie voor SQL-query's, aangezien deze niet correct aan de invoerparameters ontsnapt en uw toepassing blootstelt aan kwetsbaarheden voor SQL-injectie. Het verschil lijkt misschien triviaal, maar in werkelijkheid is het enorm .

Onjuist (met beveiligingsproblemen)

c.execute("SELECT * FROM foo WHERE bar = %s AND baz = %s" % (param1, param2))

Correct (met escapen)

c.execute("SELECT * FROM foo WHERE bar = %s AND baz = %s", (param1, param2))

Het vergroot de verwarring dat de modifiers die worden gebruikt om parameters in een SQL-instructie te binden, variëren tussen verschillende DB API-implementaties en dat de mysql-clientbibliotheek printf gebruikt. stijlsyntaxis in plaats van de meer algemeen aanvaarde '?' marker (gebruikt door bijv. python-sqlite ).



  1. Voeg de ordinale indicator toe aan een datum in PostgreSQL

  2. Oracle UTL_SMTP:Voorbeeld van e-mail met bijlage verzenden met Oracle Wallet-verificatie

  3. Hoe PostgreSQL 12 op Ubuntu 20.04 DigitalOcean te installeren

  4. Salesforce bijwerken vanuit Oracle®