Lektion 15: lösningsförslag

  1. -- 1
  2. -- Samtliga bokningar, även för andra patienter, kan hittas genom att logga in, välja alternativ 1 och ange följande läkare:
  3. Brad Pitt' OR 'a' = 'a
  4. -- SQL-kommandot som körs blir då följande:
  5. SELECT PatientID, Date, Doctor
  6. FROM Appointment
  7. WHERE PatientID = '8502101234' AND Doctor = 'Brad Pitt' OR 'a' = 'a'
  8. -- Samtliga recept inklusive personnummer, även för andra patienter, kan hittas genom att logga in, välja alternativ 2 och ange följande antal månader:
  9. 12 OR 1 = 1
  10. -- SQL-kommandot som körs blir då följande:
  11. SELECT PatientID, DatePrescribed, Medicine
  12. FROM Prescription
  13. WHERE PatientID = '8502101234' AND DATEDIFF(month, DatePrescribed, GETDATE()) <= 12 OR 1 = 1
  14. -- 2
  15. -- Ändra koden så att den använder parameters, exempelvis:
  16. string sql = @"
  17. SELECT PatientID, Date, Doctor
  18. FROM Appointment
  19. WHERE PatientID = @Id AND Doctor = @Doctor";
  20. SqlCommand command = new SqlCommand(sql, connection);
  21. command.Parameters.Add(new SqlParameter("@Id", id));
  22. command.Parameters.Add(new SqlParameter("@Doctor", doctor));