Advertisement
Guest User

Untitled

a guest
Apr 15th, 2017
85
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.85 KB | None | 0 0
  1. require 'sqlite3'
  2.  
  3. db_file_path = File.join(File.dirname(__FILE__), "test.db")
  4. DB = SQLite3::Database.new(db_file_path)
  5.  
  6. puts "username ?"
  7. print "> "
  8. username = gets.chomp
  9.  
  10. puts "password ?"
  11. print "> "
  12. password = gets.chomp
  13.  
  14. # Ce qu'il NE FAUT PAS FAIRE, car vous introduisez une faille de sécurité.
  15. # En effet, si vous saisissez
  16. # john' --
  17. # dans le username, vous pouvez vous connecter en tant que manager sans saisir de mot de passe
  18. # sql = "SELECT * FROM users WHERE username= '#{username}' AND password= '#{password}"
  19. # p sql
  20. # row = DB.execute(sql, username, password)
  21.  
  22. # Ce qu'il FAUT faire pour éviter l'injection
  23. sql = "SELECT * FROM users WHERE username= ? AND password= ?"
  24. p sql
  25. row = DB.execute(sql, username, password)
  26.  
  27. if row.empty?
  28. puts "credentials not correct"
  29. else
  30. employee_role = row.first[3]
  31. puts "you are logged as a #{employee_role}"
  32. end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement