Поделиться через


SQLiteDatabase.SqliteMaxLikePatternLength Поле

Определение

Максимальная длина шаблона LIKE или GLOB-шаблона алгоритм сопоставления шаблонов, используемый в реализации LIKE и GLOB sqLite, может проявлять производительность O(N^2) (где N является числом символов в шаблоне) для определенных болезненных случаев.

[Android.Runtime.Register("SQLITE_MAX_LIKE_PATTERN_LENGTH")]
public const int SqliteMaxLikePatternLength = 50000;
[<Android.Runtime.Register("SQLITE_MAX_LIKE_PATTERN_LENGTH")>]
val mutable SqliteMaxLikePatternLength : int

Значение поля

Value = 50000
Атрибуты

Комментарии

Максимальная длина шаблона LIKE или GLOB-шаблона алгоритм сопоставления шаблонов, используемый в реализации LIKE и GLOB sqLite, может проявлять производительность O(N^2) (где N является числом символов в шаблоне) для определенных болезненных случаев. Чтобы избежать атак типа "отказ в обслуживании", длина шаблона LIKE или GLOB ограничена SQLITE_MAX_LIKE_PATTERN_LENGTH байтами. Значение по умолчанию этого ограничения равно 50000. Современная рабочая станция может оценить даже патологическую модель LIKE или GLOB в 50000 байтах относительно быстро. Проблема типа "отказ в обслуживании" возникает только при получении длины шаблона в миллионы байтов. Тем не менее, поскольку наиболее полезные шаблоны LIKE или GLOB в длину не более нескольких десятков байтов, осторожные разработчики приложений могут захотеть уменьшить этот параметр до нескольких сотен, если они знают, что внешние пользователи могут создавать произвольные шаблоны.

Документация по Java для android.database.sqlite.SQLiteDatabase.SQLITE_MAX_LIKE_PATTERN_LENGTH.

Части этой страницы — это изменения на основе работы, созданной и общей проектом с открытым исходным кодом Android и используемой в соответствии с условиями, описанными в лицензии Creative Commons 2.5 Attribution.

Применяется к