Spring'in JdbcTemplate abstraction bir çok işlevsellik sağlar, ancak SQL enjeksiyon saldırılarına karşı koruma sağlayacak şekilde kullanılabilir mi? Örneğin, PreparedStatement'u doğru tanımlanmış bir parametrelendirmeyle kullanacağınız koruma türünde olduğu gibi.Spring JDBC, SQL enjeksiyon saldırılarına karşı koruma sağlıyor mu?
19
A
cevap
23
Kesinlikle öyle. o kuvvetle iyilik sizin için sahne arkasında kullanıyor olması gerekir ifadeleri (hazırlanan ,
String lastName = this.jdbcTemplate.queryForObject(
"select last_name from t_actor where id = ?",
String.class, 1212L);
Gördüğünüz gibi: Bu örnek (2. * aynı ama) Bahar 3,0 dokümanlardan düzdür): parametreleri yer tutucularla (?
) belirtin ve parametreleri doldurmak için bir dizi nesne sağlayın. (Son parametre beklenen sonucun türüdür, ancak bu soru için çok uygun değildir.)
Ayrıca NamedParameterJdbcTemplate
ve parametreleri Map
da sağlayabilirsiniz, bu da belki daha az verimli ancak kesinlikle daha az anımsatıcıdır.
İlgili konular
- 1. LINQ'nun ExecuteCommand'ı SQL enjeksiyon saldırılarına karşı koruma sağlıyor mu?
- 2. SQLAlchemy sorgusu, enjeksiyon saldırılarına karşı savunmasız mıdır?
- 3. Hazırda Hazırda SQL Injection'a karşı koruma
- 4. bir Normal İfade SQL Enjeksiyon
- 5. Dapper MySql güvenli sorgulama Sql Enjeksiyon karşı?
- 6. Uygulama Lisanslama vs Android'de kopyalamaya karşı koruma
- 7. easy_install arama komutu sağlıyor mu?
- 8. itunes analitiğin kullanılabilirliğini sağlıyor mu?
- 9. Spring @Transactional ve JDBC autoCommit
- 10. Spring JPA: Sorgu Oluşturucu'ya karşı Kriterler Oluşturucu mu kullanıyor?
- 11. Windows Azure, hizmet reddi saldırılarına karşı kolayca kullanılabilir bir şey var mı?
- 12. Spring Sınıf Aramaları ile JDBC RowMapper
- 13. Datastax Java Driver, enjeksiyon saldırısına karşı hassas mı?
- 14. XSRF'den Grails'e karşı nasıl korunursunuz?
- 15. Node.js hiçbir şey yapmadan verimlilik sağlıyor mu?
- 16. Yorumlar, kodun daha yavaş çalışmasını sağlıyor mu?
- 17. Enumanlar JDBC tarafından destekleniyor mu?
- 18. Ek Açıklamalara dayanarak Spring JDBC desteğini ekleme
- 19. Spring JDBC şablon sorgusuyla çift nasıl sorgulanır?
- 20. Spring Jdbc bildirimi işlem yönetimi karaf içinde
- 21. SQL Server Özel Durum: JDBC
- 22. GWT & XSRF Koruma
- 23. jdbc SQL deyimleri, java programında veri alır
- 24. SQL Server 'select * içine' 'karşı
- 25. Delphi - SQL enjeksiyonuna karşı önlem
- 26. Datalandpter var. SQL enjeksiyon için eğilimli güncelleyin?
- 27. Bu bir SQL Enjeksiyon Saldırısı örneğidir?
- 28. Spring Boot Veri Rest uygulamasında JSON-PATCH yollarını koruma
- 29. JDBC Sürücü GWT ile çalışmıyor mu?
- 30. SQL JDBC ve Java JUnit Sınama Başarısızlığı
Cool - ana şey, Spring'in API'sinde parametrelenmiş yöntemlerin kullanılması, korumanın korunacağı şekilde, Java PreparedStatements'da parametrelenmiş yöntemlerle kesinlikle eşleşmesidir. – Brabster
Yapmalılar; Spring, En İyi Uygulamaları daha uygun bir şekilde uygulamakla ve bir PreparedStatement kullanmakla ilgili olarak tavsiye edildi… iyi, JDBC ile karşılaştığım ilk sürümünde tavsiye edilmediğini hatırlıyorum. (Tüm JDBC sürücülerinin doğru olup olmadığını bilmiyorum, ama eğer bunu kullanmıyorsa, bunun için bir _excellent_ nedeni olduğunu düşünmüyordum.) –