javascript одиночная двойная кавычка - PullRequest
0 голосов
/ 11 января 2010

У меня довольно классическая проблема при взаимодействии с базами данных обработки одинарных кавычек и специальных символов. В PHP я избегаю одинарных кавычек с помощью других одинарных кавычек и символов синтаксиса регулярных выражений с помощью preg_quote, и они работают как профессионалы. Проблема в javascript, в моих сценариях есть некоторые моменты, когда я непосредственно передаю переменные базы данных во время выполнения в javascript, чтобы создать его, и именно здесь он разбивается.

Ниже приведен пример:

var href = "region_view.php?min_row=1&max_row=25&reg_name=^*&new''region' blah£"&order_by=reg_name asc";

Обратите внимание на переменную reg_name, которая выдает мне ошибку в консоли Firebug, что неверное назначение слева. Первый вопрос: есть ли какая-либо функция, например, eval или что-то, что по умолчанию может позаботиться об этих одинарных двойных кавычках? Второй вопрос, такие вещи делаются по всему приложению. Возвращаться к каждой строке JavaScript и заботиться о одинарных и двойных кавычках будет непросто. Есть ли что-то вроде глобального, который может решить эту проблему.

Мои вопросы могут показаться глупыми, но я погуглил, ничего не смог найти, пришел сюда в надежде, если кто-то найдет решение для него.

Спасибо

Ответы [ 3 ]

3 голосов
/ 11 января 2010

Никогда сборка SQL в JavaScript. Всегда отправляйте чистые значения на сервер и позволяйте ему правильно их избегать, а затем создайте SQL. В противном случае, хакер или сценарий детишки взломают ваш сайт. Обратите внимание, что в сети есть автоматические скрипты, которые ищут такие уязвимости и взламывают ваш сайт одним щелчком мыши.

1 голос
/ 11 января 2010

Вы должны быть в состоянии просто избежать кавычек:

var quotes = "\"Quoted String\""

Другое дело: если я правильно вижу, вы передаете регулярное выражение через строку параметров. Я не знаю каких-либо конкретных подвигов, но моя интуиция говорит мне, что это потенциальная дыра в безопасности и ее следует избегать.

0 голосов
/ 11 января 2010

Вызовите функцию php addlashes () в вашей строке.

...