/ / Къде е генераторът на случайни числа в метода .value ()? - sql, xml, сигурност

Къде е генераторът на случайни числа в метода .value ()? - sql, xml, сигурност

Докато изпълнявам сканиране на HP Fortify, получавам следното несигурно предупреждение за случайност:

The random number generator implemented by value() cannot withstand a cryptographic attack.

Въпросният ред е в T-SQL съхранена процедура, използвайки value() метод за извличане на стойност от XML:

SELECT t.c.value("@RequestId[1]", "BIGINT") AS RequestId

Доколкото мога да разбера от документация, няма причина това да се използвагенератор на произволни стойности, освен ако не е дълбоко в реализацията. Някой знае ли къде се използва това и дали това е истински проблем със сигурността или фалшив положителен?

Отговори:

0 за отговор № 1

Виждал съм същия този проблем няколко пътиУкрепете и вярвам, че е фалшив положителен. Fortify някак си мисли, че value () в t-sql връща случайна стойност и аз не открих доказателства за това (както и вие не).

Ако греша (не мисля, че съм), тогава можетепопитайте дали приложението ви се нуждае от сигурна случайност за това изявление, защото може да не е така. Fortify е инструмент, който не разбира контекста, така че всичко, което може да направи, е да вдигне флаг, когато види несигурна случайност, без да разбира дали е необходима сигурна случайност. Квалифициран рецензент на код, който знае достатъчно контекст за приложението и какво се случва тук, трябва да може да каже дали е необходима сигурна случайност или не тук (ако случайността е въобще замесена - това е съмнение).

Имайте предвид, че Fortify, подобно на всеки другинструмент за сигурност, не е перфектен. Дори да извадим контекста от уравнението, това не е единственият пример за проблем, повдигнат от инструмента, който според мен просто не е истински проблем.