SQL Injection'ı önlemek için Ruby'de iyi bir yöntem nedir?SQL Injection/Good Ruby yönteminin önlenmesi
cevap
.. verilerini yerine satır içi parametreleri bulmak için model bağlama değişkenleri kullanmak istiyorum yakut? Hazırlanan ifadeleri kullanın:
require 'mysql'
db = Mysql.new('localhost', 'user', 'password', 'database')
statement = db.prepare "SELECT * FROM table WHERE field = ?"
statement.execute 'value'
statement.fetch
statement.close
Buradaki sorunum, bir alanın tersine çok fazla sonuç döndüren bir sonuç döndürüyor olmasıdır… – Zombies
Bu, belirli bir sorgu için hazırlanmış ifadelerin nasıl kullanılacağının sadece bir örneğidir. Sonuçlarla yaptığınız şey size kalmış. –
Sadece Ruby'de değil - parametrelerinizi bağlayın (veritabanında veya istemci kodunda olsun).
Kontrol dışarı bu kadar sahip kılavuzu: Temelde http://guides.rubyonrails.org/security.html#injection
, ayağa düz içinde
Model.find(:first, :conditions => ["login = ? AND password = ?", entered_user_name, entered_password])
Evet, bu iyi görünüyor. Java'da kullandığım şeyden çok, teşekkürler. – Zombies
En azından aktif kayıt hakkında konuştuğunuzdan bahsetmelisiniz. – sepp2k
Ben sadece bu konuda yorum yapmak üzereydim ... benim acele, özellikle Rails/ActiveRecord için olmadığını okumak için unuttum .. bu konuda üzgünüm! –
http://ruby.railstutorial.org/ göre sen app/views/düzenleri/application.html.erb başlığında
<%= csrf_meta_tags %>
etiketi ekleyerek xsrf önleyebilir.
Web çerçeveleriyle çalışanlar için iyi bir fikir, ancak SQL Inejection! = XSS – Zombies
Bu iplik referanslar:
http://www.ruby-forum.com/topic/90258#new
http://www.ruby-forum.com/topic/82349#143790
activerecord en bulmak format() yöntemi
kullanılarak tarafından SQL enjeksiyon önlemek için şekillerde inşa ettiEnjeksiyondan kaçmak için böyle bir sistem var mı? sadece bir dize alıp SQL deyimiyle besleniyor gibi görünüyor. ayarlamak için params kullanılırken bu bir açığını neden olur: sipariş bu işlevinde olarak:
def list
sort_by = params[:sort_by]
@book_pages, @books = paginate :books,
:order => sort_by,
:per_page => 10
end
Biz order => [ '?', sort_by] ancak bunun gibi sort_by sterilize için birkaç metot denedim sadece bunu düzleştirilmiş bir dizisi gibi SQL deyimine geçirir. 'Kaçan sihir' sipariş için işe yaramaz. gsub kullanmalı mıyım? paramları sterilize etmek [: sort_by]?
- 1. önlenmesi O (n) sorgular
- 2. önlenmesi çift form gönderimleri
- 3. ruby dışsallaştırılmış SQL modülü
- 4. MS SQL Ruby Gem
- 5. MFMailComposeViewController'ın animasyonlu GIF'leri ölçeklemesinden önlenmesi
- 6. Sızdırmazlıktaki uzun dizelerin kesilmesinin önlenmesi
- 7. Launch() yönteminin
- 8. Ruby'de Array # uniq yönteminin zaman karmaşıklığı nedir?
- 9. Seri monitörde sıfırlamanın önlenmesi bağlanıyor mu?
- 10. Çok işlemcili "kaçak hatalar" ın önlenmesi
- 11. Bir sınıf içinde bir sınıf yönteminin çağrılması
- 12. Async yönteminin sonucu
- 13. MotionEvent.getAction() yönteminin kullanılış farkı
- 14. Dur yönteminin yürütülmesi - Swift
- 15. sys.stdout.flush() yönteminin kullanımı
- 16. Bu C++ yönteminin genişletilmesi
- 17. Raylar - bir sınıf örneği yönteminin içinde bir yardımcı modül yönteminin çağrılması
- 18. Ruby Nil ve Sıfır
- 19. @BeforeClass yönteminin üst sınıfı çağrılmadı
- 20. Unity RegisterInstance yönteminin nebze eşdeğeri
- 21. C++ yönteminin Objective C'den çağrılması
- 22. C/C++ simplex yönteminin uygulanması
- 23. Arama yönteminin adı nasıl alınır?
- 24. Uygulama temsilcisinden UIViewController yönteminin çağrılması
- 25. HTML5 sesinin yükleme sırasında önceden yükleme/akıştan nasıl önlenmesi gerekir?
- 26. Jenkins projelerinin serbest bırakılmasının önlenmesi (böylece yeniden dağıtılması)
- 27. Sondaki eğik çizginin önlenmesi sonsuz döngüye neden oluyor
- 28. Süresiz bellek ayırmak için UIWebView önlenmesi (NSURLCache görünüşte çalışmıyor)
- 29. Ruby & Ruby on Rails
- 30. (Ruby, Rails) (Ruby, Rails)
Hangi kütüphaneyi kullanıyorsunuz? – sepp2k
Ah, kimsenin önerdiği herhangi birini alırım. – Zombies
İndirgemeden biraz şaşırdım, ancak bir web çerçevesi mi yoksa düz eski yakut nesneler mi kullanıp kullanmadığınızı belirttiğinizde yardımcı olabilir. –