Prevented SQL injection in function addLinkToDB.
authorPhilipp Spitzer <philipp@spitzer.priv.at>
Thu, 23 Jun 2011 15:02:15 +0000 (15:02 +0000)
committerPhilipp Spitzer <philipp@spitzer.priv.at>
Thu, 23 Jun 2011 15:02:15 +0000 (15:02 +0000)
src/sql/sqlengine.cpp

index 60c0d05..65c2dc5 100644 (file)
@@ -277,10 +277,13 @@ void SqlEngine::addLinkToDB(QHash<QString,QString> &aLink)
     //TODO: check if the link doesn't exist before inserting
     if (db.isValid() && db.isOpen())
     {
     //TODO: check if the link doesn't exist before inserting
     if (db.isValid() && db.isOpen())
     {
-        // TODO: SQL Injection!!!
-        QString values = QString("'%1', '%2', '%3', '%4'").arg(aLink["event_id"],aLink["conference_id"],aLink["name"],aLink["url"]);
-        QString query = QString("INSERT INTO LINK (xid_event, xid_conference, name, url) VALUES (%1)").arg(values);
-        QSqlQuery result(query, db);
+        QSqlQuery query(db);
+        query.prepare("INSERT INTO LINK (xid_event, xid_conference, name, url) VALUES (:xid_event, :xid_conference, :name, :url)");
+        query.bindValue(":xid_event", aLink["event_id"]);
+        query.bindValue(":xid_conference", aLink["conference_id"]);
+        query.bindValue(":name", aLink["name"]);
+        query.bindValue(":url", aLink["url"]);
+        if (!query.exec()) qDebug() << "Error executing 'insert into link' query: " << query.lastError();
         //LOG_AUTOTEST(query);
     }
 }
         //LOG_AUTOTEST(query);
     }
 }