NoSQL Enjeksiyonu (ARCH6140)
Anahtar ruby.security.nosql-injection · Önem error · Kategori security · CWE CWE-943
Bir sorguya işlenmemiş istek karmasını geçirmek, saldırganların $gt gibi sorgu operatörlerini enjekte ederek kimlik doğrulamayı atlatmasına olanak tanır. Girdiyi her zaman skalere dönüştürün.
Hatalı
Bölüm başlığı “Hatalı”def authenticate User.where(username: params[:username], password: params[:password]).firstenddef authenticate user = User.where(username: params[:username].to_s).first user if user&.authenticate(params[:password].to_s)endDüzeltme
Bölüm başlığı “Düzeltme”Sorgu değerlerini to_s ile skalere zorlayın ve istemci tarafından sağlanan operatör karmalarını asla geçirmeyin.