Co to jest dobra metoda w Ruby, aby zapobiec SQL Injection?Zapobieganie SQL Injection/Good Ruby method
Odpowiedz
w prosto rubin? użyć przygotowanych sprawozdań:
require 'mysql'
db = Mysql.new('localhost', 'user', 'password', 'database')
statement = db.prepare "SELECT * FROM table WHERE field = ?"
statement.execute 'value'
statement.fetch
statement.close
Mój problem polega na tym, że zwraca tablicę wyników w przeciwieństwie do pola lub coś znacznie łatwiejszego w zarządzaniu ..... – Zombies
To jest tylko przykład użycia przygotowanych instrukcji dla kwerendy wyboru. To, co robisz z wynikami, należy do Ciebie. –
Nie tylko w Ruby - wiąż swoje parametry (czy to w bazie danych, czy w kodzie klienta).
Zapoznaj się z przewodnikiem muszą się na to: http://guides.rubyonrails.org/security.html#injection
Zasadniczo chcesz używać zmiennych powiązań w modelach znaleźć dane, zamiast parametrów wbudowanych ..
Model.find(:first, :conditions => ["login = ? AND password = ?", entered_user_name, entered_password])
Tak, to wygląda dobrze. W zasadzie to, do czego jestem przyzwyczajony w Javie, dzięki. – Zombies
Powinieneś przynajmniej wspomnieć, że mówisz o aktywnej płycie. – sepp2k
Właśnie miałem skomentować to ... w moim pośpiechu, zapomniałem przeczytać, że to nie było specjalnie dla Rails/ActiveRecord .. przepraszam za to! –
Według http://ruby.railstutorial.org/ można zapobiec cross-site request forgery wstawiając znacznik
<%= csrf_meta_tags %>
w nagłówku app/views/układów/application.html.erb.
Dobry pomysł dla osób pracujących z frameworkami WWW, ale SQL Inejection! = XSS – Zombies
tego wątku referencje:
http://www.ruby-forum.com/topic/90258#new
http://www.ruby-forum.com/topic/82349#143790
znalezisko ActiveRecord za() metoda został zbudowany w taki sposób, aby uniknąć wstrzyknięcia SQL przez użyciu formatu
Czy istnieje taki system do unikania iniekcji w celu? Wydaje się, że tylko pobiera ciąg znaków i podaje go do instrukcji SQL. Powoduje to lukę przy użyciu params ustawić: porządek jak w tej funkcji:
def list
sort_by = params[:sort_by]
@book_pages, @books = paginate :books,
:order => sort_by,
:per_page => 10
end
Próbowaliśmy kilka metod dezynfekcji sort_by takich jak order => [ '?', sort_by] ale to właśnie przekazuje to do instrukcji SQL, takie jak spłaszczona tablica . "Uciekająca magia" nie działa na zamówienie. Należy użyć gsub! dezynfekować parametry [: sort_by]?
- 1. Ruby Basics: Pop Method in Array
- 2. Zapobieganie buforowaniu w SQL Server
- 3. Zapobieganie iniekcji SQL w hibernacji
- 4. will_paginate undefined method `total_pages '
- 5. Zapobieganie atakom SQL Injection: od czego zacząć
- 6. Ruby externalized moduł SQL
- 7. MS SQL Ruby Gem
- 8. removeGestureRecognizer method
- 9. Rails 3 ActiveRecord API: .build method
- 10. Zapobieganie Ruby na szynach 3 z parsowania JSON post
- 11. Jak uniknąć "Error in stripchart.default (x1, ...): invalid method method" error?
- 12. Doxygen ignores @ method
- 13. UICollectionView willDisplayCell delegate method?
- 14. Podkreślenie js extend method
- 15. Rest Framework Serializer Method
- 16. Vue debounce a method?
- 17. Java Reflection getConstructor method
- 18. Benchmark UIView drawRect: method
- 19. Railsy redirect_to post method?
- 20. abap multiple method call
- 21. Scala.A i getOrElse method
- 22. Scala: method \ operator overloading
- 23. Background Worker ReportProgress method
- 24. Mockito- calling real method
- 25. Missing CrudRepository # findOne method
- 26. Highcharts Performance Enhancement Method?
- 27. Python magic method confusion
- 28. PowerDesigner - Zapobieganie dużej wielkości nazwy DB w wygenerowanym SQL
- 29. Zapobieganie iniekcji SQL w bibliotekach C++ OTL, DTL lub SOCI
- 30. Zapobieganie iniekcjom SQL za pomocą Microsoft Access i VB.NET
Używanie jakiej biblioteki? – sepp2k
Och, jakikolwiek, złapię ktokolwiek ktokolwiek poleci. – Zombies
Jestem trochę zaskoczony zaniedbaniem, ale może ci pomogło, jeśli wspomniałeś, czy korzystałeś z frameworka lub używasz zwykłych starych obiektów z rubinem. –