https://github.com/laravel/framework/pull/28160
Pr burada...Bana göre iyi ki pr atılmış,mail yoluyla atılsa imiş taylor bu açığı kapatmazdı diye düşünüyorum.
Zira kendisi şunu yazıyor...
Note that you should never allow users to control the columns of your query without a white list. PDO does not allow binding column names as parameters and thus we can't offer much real protection there.
Özü şu : beni ilgilendirmiyor beyaz liste yapılması lazım ben her zaman bu tip kapatmalarla uğraşamam diyor.Zaten tam koruma bu şekliyle sağlanamaz diyor.
Kısmen doğru soyluyor ama
/**
* Wrap the given JSON path.
*
* @param string $value
* @param string $delimiter
* @return string
*/
protected function wrapJsonPath($value, $delimiter = '->')
{
$value = preg_replace("/([\\\\]+)?\\'/", "\\'", $value);
return '\'$."'.str_replace($delimiter, '"."', $value).'"\'';
}
eklenen satır sadece $value değişkenin ilgili tırnak kaçışlarını engellemesidir.
Size göre laravel sorunu mudur kullanıcı sorunu mudur?
Bana göre laravel bunu halletmeli.Her kullanıcı bu açığı göremeyebilir.
Zira enjekte edilen url :
/blog?fields[]=%22%27%29%29+FROM+blogs+RIGHT+OUTER+JOIN+users+ON+users.id+%3C%3E+null%23
modele enjekte edilmesi:
Blog::query()->addSelect([
'%22%27%29%29+FROM+blogs+RIGHT+OUTER+JOIN+users+ON+users.id+%3C%3E+null%23'
])->get();