Регулярные выражения в приложении Какао Objective C

Я использую три разных способа предотвращения уязвимости моего веб-приложения для 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");

173
задан dreeves 24 March 2010 в 22:22
поделиться

6 ответов

Я заметил, что начиная с iOS 4.0 Apple предоставляет класс NSRegularExpression. Кроме того, с версии 10.7 класс доступен под OS X.

141
ответ дан 23 November 2019 в 20:37
поделиться
  1. Да, в Какао нет никакой поддержки regex. Если Вы только интересуетесь соответствием булевской переменной, можно использовать NSPredicate, который поддерживает ICU regex синтаксис. Но обычно Вы интересуетесь положением соответствия или положением подвыражений, и Вы не можете получить его с NSPredicate.
  2. , Как упомянуто можно использовать regex функции POSIX . Но их считают медленными, и regex синтаксис ограничен по сравнению с другими решениями (ICU / pcre).
  3. существуют многие библиотеки OSS, , CocoaDev имеет обширный список .
  4. RegExKitLite, например, не делает требует любых библиотек, просто добавьте.m и.h к Вашему проекту.

    (Моя жалоба на RegExKitLite - то, что он расширяет NSString через категорию, но это можно рассмотреть как функцию также. Также это пользуется непубличными библиотеками ICU, поставленными с ОС, которая не рекомендуется Apple.)

42
ответ дан GenericJon 23 November 2019 в 20:37
поделиться

RegexKit является лучшим, я нашел все же. Очень Cocoa:y. Я использую "Облегченную" версию в нескольких из наших приложений для iPhone:

sourceforge

lingonikorg

19
ответ дан NANNAV 23 November 2019 в 20:37
поделиться

Можно пользоваться библиотекой POSIX Regular Expressions (Yay для POSIX совместимая ОС). Попробуйте

man 3 regex
11
ответ дан Adam Wright 23 November 2019 в 20:37
поделиться

Мне нравится платформа AGRegex, которая использует PCRE, удобный, если Вы привыкли к синтаксису PCRE. Лучшая версия этой платформы является той в клиенте IRC Обсуждения, поскольку это было обновлено для использования PCRE 6.7:

http://colloquy.info/project/browser/trunk/Frameworks/AGRegex

Это очень легко, намного больше, чем RegExKit (хотя не как способное, конечно).

6
ответ дан Rob Keniger 23 November 2019 в 20:37
поделиться

Во время моего поиска по этой теме я столкнулся CocoaOniguruma, который использует Oniguruma, механизм Регулярного выражения позади Ruby1.9 и PHP5. Это кажется немного более новым по сравнению с существующим OregKit (на японском языке). Не уверенный, как они складывают против другой привязки.

4
ответ дан newtonapple 23 November 2019 в 20:37
поделиться
Другие вопросы по тегам:

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