Я все еще смущен по поводу очистки строк - PullRequest
0 голосов
/ 05 июня 2011

Я кодирую интранет.Теоретически, мне не нужно слишком беспокоиться о внедрении SQL (я вижу, что вы уже в ужасе вскидываете руки ;-) Это не совсем безопасное приложение и не имеет никаких «секретных вещей».

Меня больше заботит хранение и извлечение строк, содержащих кавычки.

Он должен использовать функцию ODBC (порядок сверху).

1) достаточно ли addslashes() при выполнении команд и stripslashes() при их получении?

2) Мне известно, какие входные данные могут содержать кавычки, а какие нет (например, некоторые поля ввода формы требуют ввода чисел a, проверяются, поэтому, если они будут записаны в d / b, они известны как свободныецитаты)

Тем не менее, у меня есть центральные функции для OdbcExec() и odbc_fetch_row(), а затем извлечь значение именованного столбца.

Есть ли причина, почему я должен кивнуть добавить/ strip-slashes в этих?

Если вы можете сделать его немного более безопасным, все еще используя функции OSBC, то непременно сделайте это.Моя главная задача на этом раннем этапе разработки - предотвратить сбои при вводе строк, содержащих кавычки.1 или 2 центральные функции кажутся мне лучше, но, может быть, вы лучше знаете.

Спасибо за разъяснение

1 Ответ

3 голосов
/ 05 июня 2011

Использовать параметризованные запросы / операторы. Функция подготовки и выполнения odbc предоставляет вам эту функцию следующим образом:

<?php
  $a = $_GET['a'];
  $stmt = odbc_prepare($db_conn, "SELECT b FROM c WHERE a=?");
  $res = odbc_execute($stmt, array($a));
?>

Существует некоторое ограничение в отношении параметров, которые начинаются и заканчиваются одинарными кавычками, см. Здесь:

http://php.net/manual/en/function.odbc-execute.php

Проверьте входные данные как можно лучше, прежде чем помещать их в БД, и используйте параметризованные запросы, и вы будете в бизнесе.

...