Соответствие точной строке с JavaScript

ВАЖНО

. Лучший способ предотвратить SQL Injection - использовать подготовленные выражения вместо экранирования , поскольку демонстрирует принятый ответ .

Существуют библиотеки, такие как Aura.Sql и EasyDB , которые позволяют разработчикам легче использовать подготовленные инструкции. Чтобы узнать больше о том, почему подготовленные операторы лучше в останавливать SQL-инъекцию , см. этот mysql_real_escape_string() обход и недавно зафиксированные уязвимости Unicode SQL Injection в WordPress .

Предотвращение впрыска - mysql_real_escape_string ()

У PHP есть специально созданная функция для предотвращения этих атак. Все, что вам нужно сделать, это использовать функцию функции mysql_real_escape_string.

mysql_real_escape_string берет строку, которая будет использоваться в запросе MySQL, и возвращает ту же строку со всеми попытками внедрения SQL безопасно сбежал. В принципе, это заменит эти неприятные кавычки ('), которые пользователь может ввести с помощью заменителя в MySQL, сэкономленная цитата.

ПРИМЕЧАНИЕ: вы должны подключиться к базе данных, чтобы использовать эту функцию!

// Подключение к MySQL

$name_bad = "' OR 1'"; 

$name_bad = mysql_real_escape_string($name_bad);

$query_bad = "SELECT * FROM customers WHERE username = '$name_bad'";
echo "Escaped Bad Injection: 
" . $query_bad . "
"; $name_evil = "'; DELETE FROM customers WHERE 1 or username = '"; $name_evil = mysql_real_escape_string($name_evil); $query_evil = "SELECT * FROM customers WHERE username = '$name_evil'"; echo "Escaped Evil Injection:
" . $query_evil;

Более подробную информацию вы найдете в MySQL - SQL Injection Prevention .

40
задан user2428118 2 October 2012 в 13:16
поделиться

3 ответа

или

var r = /^a$/

или

function matchExact(r, str) {
   var match = str.match(r);
   return match && str === match[0];
}
91
ответ дан Bob Stein 27 November 2019 в 01:08
поделиться

Запишите свой regex по-другому:

var r = /^a$/;
r.test('a'); // true
r.test('ba'); // false
20
ответ дан Serhat Ozgel 27 November 2019 в 01:08
поделиться

Если Вы не используете заполнителей (поскольку "точно", кажется, подразумевает), как насчет сравнения строк вместо этого?

, Если Вы действительно используете заполнителей, ^ и $, соответствуют началу и концу строки, соответственно.

10
ответ дан Svante 27 November 2019 в 01:08
поделиться
Другие вопросы по тегам:

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