İçeriğe geç

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.

def authenticate
User.where(username: params[:username], password: params[:password]).first
end
def authenticate
user = User.where(username: params[:username].to_s).first
user if user&.authenticate(params[:password].to_s)
end

Sorgu değerlerini to_s ile skalere zorlayın ve istemci tarafından sağlanan operatör karmalarını asla geçirmeyin.