ObservableCollection (T) по сравнению с BindingList (T)?

Я использую три разных способа предотвращения уязвимости моего веб-приложения для SQL-инъекции.

  1. Использование mysql_real_escape_string(), которое является предопределенной функцией в PHP , и этот код добавляет обратную косую черту к следующим символам: \x00, \n, \r, \, ', " и \x1a. Передайте входные значения в качестве параметров, чтобы свести к минимуму вероятность внедрения SQL.
  2. Самый продвинутый способ - использовать PDO.

Надеюсь, это поможет вам.

Рассмотрим следующий запрос:

$iId = mysql_real_escape_string("1 OR 1=1"); $sSql = "SELECT * FROM table WHERE id = $iId";

mysql_real_escape_string () здесь не защитит. Если вы используете одиночные кавычки ('') вокруг ваших переменных внутри вашего запроса, это то, что защищает вас от этого. Ниже приведено ниже решение:

$iId = (int) mysql_real_escape_string("1 OR 1=1"); $sSql = "SELECT * FROM table WHERE id = $iId";

В этом вопросе есть хорошие ответы.

Я предлагаю , наилучшим вариантом является использование PDO.

Изменить:

mysql_real_escape_string() устарел с PHP 5.5.0. Используйте либо mysqli, либо PDO.

Альтернативой mysql_real_escape_string () является

string mysqli_real_escape_string ( mysqli $link , string $escapestr )

Пример:

$iId = $mysqli->real_escape_string("1 OR 1=1");
$mysqli->query("SELECT * FROM table WHERE id = $iId");

23
задан Robert Harvey 26 May 2011 в 14:51
поделиться

1 ответ

Claber,

я сохранил бы BindingList, потому что BindingList поддерживает больше интерфейсов и более многофункциональный, чем ObservableCollection. Например:

  1. BindingList реализует IList T, тогда как ObservableCollection не делает.
  2. BindingList реализует интерфейс ICancelAddNew, который механизмы привязки данных используют для отмены недавно добавленного объекта (при нажатии на Escape после добавления строки к DataGridView строка исчезнет).

я очень плохо знаком с WPF сам и не знаю определенных преимуществ предложения ObservableCollection.

Hope это помогает.

13
ответ дан Valentin Vasilyev 29 November 2019 в 02:36
поделиться
Другие вопросы по тегам:

Похожие вопросы: