Белый список - это базовое понятие программирования, касающееся того, как входные данные для программы считаются действительными, хорошими или плохими.
Белый список: проверяет ввод, ища действительные условия и продолжая, если все хорошо;по умолчанию отменяет действие, если все не в порядке.
Черный список: проверка на ввод, ищет неправильный ввод и отклоняет, если так;прерывание действия с ошибкой, если это так, в противном случае продолжается действие.
Область возможных плохих входов бесконечна, область возможных хороших входов конечна, поэтому:
Проверка белых списковвведите как этот
if %w(some valid input).include?(params[:input])
# proceed with action
else
# not in whitelist, throw error
end
Черные списки: (Не делайте этого)
if %(some invalid input).include?(params[:input])
# throw error, detected invalid
else
# proceed with action
end
Всегда применяйте логику белого списка, где это возможно выше черного списка.